この章では、高度なPL/SQL機能について紹介し、詳細は他の章やマニュアルへの参照を示しています。
内容は次のとおりです。
PL/SQLデータ型には、SQLデータ型、追加のスカラー・データ型、およびコンポジット・データ型があります。コンポジット・データ型は、ユーザーが定義します。スカラー・データ型のサブタイプも定義できます。詳細は、11.4.4項「PL/SQLのデータ型」を参照してください。
動的SQLは、実行時にSQL文を生成して実行するためのプログラミング方法です。この方法は、非定型の問合せシステムのような柔軟性がある汎用目的のプログラムを記述する場合、データベース定義言語(DDL)文を実行する必要があるプログラムを記述する場合、またはコンパイル時にSQL文のテキスト全体またはそのSQL文の入力変数および出力変数の数またはデータ型が不明な場合に有効です。詳細は、11.4.9項「PL/SQLの動的SQL」を参照してください。
PL/SQL最適化レベルは、PL/SQLオプティマイザがコードを再調整してパフォーマンス向上を図ることのできる程度を決定します。このレベルは、コンパイル・パラメータPLSQL_OPTIMIZE_LEVEL
を使用して設定します。このパラメータについては、『Oracle Databaseリファレンス』を参照してください。詳細は、11.3.1項「PLSQL_OPTIMIZE_LEVELコンパイル・パラメータ」を参照してください。
通常、PL/SQLユニットをコンパイルして、システム固有のコード(プロセッサに依存するシステム・コード)にすると、PL/SQLユニットをスピードアップできます。システム固有のコードは、SYSTEM表領域に格納されます。システム固有の実行のためのPL/SQLユニットのコンパイルの詳細は、11.7項「システム固有の実行のためのPL/SQLユニットのコンパイル」を参照してください。
例外(PL/SQLランタイム・エラー)は、設計の失敗、コーディングの間違い、ハードウェアの障害などの多くの原因で発生する可能性があります。発生する可能性があるすべての例外を予想することはできませんが、例外が発生してもプログラムで処理を継続できるように例外ハンドラを記述できます。詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
条件付きコンパイルを使用すると、ソース・テキストを削除することなく、PL/SQLアプリケーションの機能をカスタマイズできます。たとえば、次のことが可能です。
最新のデータベース・リリースで新機能を使用し、古いデータベース・リリースでアプリケーションを実行する場合にそれらの新機能を無効化することができます。
開発環境でデバッグ文またはトレース文をアクティブ化し、本番サイトでアプリケーションを実行する場合にそれらの文を隠ぺいすることができます。
ただし、次のことに注意してください。
条件付きコンパイルを使用して型の属性構造を変更すると、依存オブジェクトが非同期になったり、依存表がアクセス不可になる場合があるため、推奨されません。
型の属性構造を変更するには、依存オブジェクトに変更を伝播するALTER
TYPE
文を使用することをお薦めします(『Oracle Database SQL言語リファレンス』を参照)。
条件付きコンパイルには、制約があります。
条件付きコンパイルの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
バルク・バインドを利用すると、PL/SQLとSQLの間で通信のパフォーマンス・オーバーヘッドが最小限になり、パフォーマンスが大幅に向上します。詳細は、11.4.8項「バルク・バインドの概要」を参照してください。