SQL 関数に関する制約事項
SQL 関数を作成する前、またはそのインプリメンテーションと使用に関連する問題をトラブルシューティングする場合には、その制約事項に注意してください。
SQL 関数には、以下の制約事項が適用されます。
- SQL 表関数にコンパイル済みコンパウンド・ステートメントを含めることはできません。
- READS SQL として定義されているコンパイル済み SQL スカラー関数は、パーティション・データベース環境で呼び出すことができますが、確実にコーディネーター・エージェントで実行される場合に限ります。
- CONTAINS SQL として定義されており、パーティション・データベース環境で呼び出されるコンパイル済み SQL スカラー関数は、SQL ステートメントの準備ができず、CALL ステートメントの実行もできず、処理前に SQL コンパイラーが完全な SQL ステートメントに変換する構成を使用することもできません。
- 定義によると、SQL 関数には WITH RETURN 節を使用して定義されたカーソルを含めることはできません。
- コンパイル済み SQL 関数では、構造化データ・タイプ、LONG VARCHAR データ・タイプ、および LONG VARGRAPHIC データ・タイプはサポートされていません。 XML データ・タイプは、バージョン 10.1 ではサポートされません。 XML データ・タイプがサポートされるのは、バージョン 10.1 フィックスパック 1 以降です。
- 今回のバージョンでは、コンパイル済み SQL 関数で DECLARE TYPE ステートメントを使用することはできません。
- コンパイル済み SQL 関数 (PL/SQL 関数を含む) にフェデレーテッド・オブジェクトへの参照を含めることはできません。
- SQL データを変更するコンパイル済み SQL 関数 (PL/SQL 関数を含む) は、コンパウンド SQL (コンパイル済み) ステートメント内の代入ステートメントの右辺で単独エレメントとしてのみ使用できます。
- ユーザー定義関数がコンパイル済みコンパウンド SQL である生成列式が表に含まれている場合、LOAD ユーティリティーを使用して表にデータを挿入することはできません。