動的SQLが必要な場合
PL/SQLでは、次のSQLを実行するために動的SQLが必要となります。
-
コンパイル時に不明なテキストが含まれているSQL
たとえば、コンパイル時に不明な識別子(表名など)が含まれている
SELECT
文、コンパイル時に副次句の数が不明なWHERE
句などです。 -
静的SQLとしてサポートされていないSQL
つまり、「静的SQLの説明」で示されていないSQL構文のことです。
動的SQLが必要ない場合は、静的SQLを使用します。静的SQLには、次のようなメリットがあります。
-
コンパイルが正常に完了すると、静的SQL文が有効なデータベース・オブジェクトを参照していること、およびそれらのオブジェクトへのアクセスに必要な権限が存在していることが保証されます。
-
コンパイルが正常に完了すると、スキーマ・オブジェクトの依存性が作成されます。
スキーマ・オブジェクトの依存性の詳細は、『Oracle Database開発ガイド』を参照してください。
PL/SQLでの静的SQL文の使用方法の詳細は、「PL/SQLの静的SQL」を参照してください。