read-only-clause
FOR READ ONLY 節は、結果表が読み取り専用であり、 カーソルは UPDATE ステートメントおよび DELETE ステートメントで参照されません。 FOR FETCH ONLY も同じ意味です。
結果表の中には、最初から読み取り専用のものがあります。 (読み取り専用ビューに基づく表など。) FOR READ ONLY は、このような表にも指定できますが、指定しても効果はありません。
更新と削除ができない結果表の場合、FOR READ ONLY (または FOR FETCH ONLY) を指定すると、 データベース・マネージャーが、ブロッキングを行うことができるため、 FETCH 操作のパフォーマンスが向上する可能性があります。 例えば、FOR READ ONLY 節または ORDER BY 節のない動的 SQL ステートメントの入ったプログラムでは、 FOR UPDATE 節が指定されたかのようにして、 データベース・マネージャーがカーソルをオープンする場合があります。 したがって、 UPDATE または DELETE ステートメントで照会を使用する場合以外は、 パフォーマンスを向上させるために FOR READ ONLY 節を使用するようにしてください。
読み取り専用結果表は、それが最初から読み取り専用であるか、 それとも FOR READ ONLY (FOR FETCH ONLY) として指定されたのかには関係なく、 定位置 UPDATE または DELETE ステートメントで参照することはできません。
