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 ユーティリティーを使用して表にデータを挿入することはできません。