次の制限が、外部プロシージャに適用されます。
- データベースのUDFライブラリに、名前にマルチバイト文字が存在するオブジェクトが含まれている場合、新規オブジェクト名に1バイト文字のみが含まれる場合でも、1バイト セッション文字セットを使用して、新たなUDF、UDT、メソッド、あるいはJava外部プロシージャ オブジェクトを作成することはできません。必ずマルチバイト セッション文字セットを使用するようにしてください。
- 組み込みSQLアプリケーションからはCREATE PROCEDURE(外部形式)リクエストを実行できません。
- CLIv2またはJDBC APIの使用では、SQL関数呼び出しのみを実行できます。
- 外部プロシージャ定義に、何らかの方法で行レベル セキュリティ制約の管理を実行するCLIv2またはJDBC SQL関数呼び出しを含めることはできません。
- 次のデータ型を使用するグローバル一時トレース テーブル(CREATE GLOBAL TEMPORARY TRACE TABLEを参照)の列にJava文字列を書き込むことはできません。
- GRAPHIC
- VARGRAPHIC
- LONG GRAPHIC
これらの型を持つグローバル一時トレース テーブル列を定義することはできても、Java言語はサポートしないため、JavaプロシージャからJava文字列を書き込むことはできません。
- また、トリガーで呼び出される外部プロシージャにもいくつかの制限があります。詳細は、<トリガーおよびSQL呼び出しを行なう外部ストアド プロシージャ>を参照してください。
次の追加の制限が、Java外部プロシージャにのみ適用されます。
- インライン処理を使用して動的結果セットを持つLOBにアクセスすることはできません。
- 別のセッションまたはデータベースからの結果セットを処理することはできません。
- Javaプロシージャでは、動的結果セットを呼び出しから呼び出しへ渡し戻すことはできません。
結果セットを一度に上層に渡すことはできません。
- 複文リクエストに結果セットではないリクエストと動的結果セットのリクエストを混在させることはできません。
- 結果セットはコピーできません。
結果セット オブジェクトのコピーを作成しても、それが2回返されることはありません。
- SQLプロシージャは、Javaプロシージャへの呼び出しによる動的結果セットを消費できません。