メソッド・シグネチャの編集
このページは、ストアド・プロシージャの公開に使用されるPL/SQLコール仕様の詳細を編集する際に使用します。この設定により、ストアド・プロシージャのカスタマイズに使用されるCREATE PROCEDUREおよびCREATE FUNCTION SQL文の一部をカスタマイズできます。
ストアド・プロシージャ・デプロイメント・プロファイルで使用されるCREATE FUNCTION、CREATE PROCEDURE、CREATE PACKAGEおよびCREATE PACKAGE BODY文の詳細は、『Oracle9i SQLリファレンス』を参照してください。
Oracle9iデータベースでのJavaアプリケーションのサポート状況の詳細は、『Oracle9i Java Developer's Guide』を参照してください。
- Javaクラス
- クライアント・アプリケーションによってコールされる際にストアド・プロシージャで受け入れられる、参照Javaクラスの名前を入力します。
-
- Javaメソッド
- コールするJavaメソッドが表示されます。これはクラスにより定義されたメソッド、またはそのクラスから拡張されたクラスに継承されたメソッドです。このフィールドは編集できません。名前は、「ストアド・プロシージャの追加」ダイアログで、またはJavaストアド・プロシージャのデプロイメント・プロファイル・ウィザードから、Javaメソッドを選択した際に設定されます。
-
- PL/SQLメソッド名
- これらの設定により、ストアド・プロシージャをSQLに公開するために使用されるSQL文(
CREATE PROCEDURE
およびCREATE FUNCTION
)の一部をカスタマイズできます。PL/SQLパッケージからJavaストアド・プロシージャを、Javaストアド・プロシージャからPL/SQLプロシージャをそれぞれコールできます。
-
- Java戻り型
- このフィールドにはJavaメソッドの戻り型が表示され、編集はできません。
-
- PL/SQL戻り型
- 公開されるファンクションに適切なPL/SQL戻り型を選択します。
- 注意: Java型は、特定のPL/SQL型にのみマッピング可能です。このコンボ・ボックスには、Java型をマッピングできるPL/SQL型のみが表示されます。
- 型マッピングの詳細は、『PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。
-
- Javaパラメータ
- (PL/SQLファンクションにのみ適用されます。)次の追加フィールドは、基礎となるJavaメソッドが値を返す場合に、「メソッド・シグネチャの編集」ダイアログに表示されます。
-
- PL/SQLパラメータ設定
- 必要なPL/SQL設定を入力します。
- 名前
- PL/SQLパッケージ名を入力します。
-
- 型
- (PL/SQLファンクションおよびプロシージャに適用されます。)定数、変数およびパラメータにはすべてデータ型(または、単に「型」)があり、これによって格納の形式、制約および値の有効範囲を指定します。PL/SQLには事前定義された様々なデータ型が用意されています。たとえば、整数、浮動小数点、文字、ブール、日付、コレクション、参照およびLOBの各型から選択できます。さらに、PL/SQLにより独自のサブタイプも定義できます。詳細は、『PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。
-
- モード
- パラメータ・モードを使用して、仮パラメータの動作を定義します。任意のサブプログラムで、IN(デフォルト)、OUTおよびIN OUTの3種類のパラメータ・モードを使用できます。ただし、ファンクションではOUTおよびIN OUTモードの使用は避けてください。ファンクションの目的は、ゼロ以上の引数(実パラメータ)を取得し、1つの値を返すことです。ファンクションで複数の値を返させることは、プログラミング上お薦めできません。また、ファンクションは、サブプログラムのローカル変数ではない変数の値を変更するような、予期せぬ動作をしないことが必要です。
- 注意: OUTおよびIN OUTモードは、パラメータの型が配列型の場合にのみ使用可能です。実行時には、配列の最初の要素のみが、Javaストアド・プロシージャをコールするPL/SQLコードで使用可能になります。
-
- 参照渡し(NOCOPY)
- この引数をできるだけ速く渡すようOracleに指示する場合は、
NOCOPY
を指定します。この句を使用すると、レコード、索引付き表またはVARRAYなどの大きい値をOUTまたはIN OUTパラメータに渡す際に、パフォーマンスを大幅に向上させることができます。(INパラメータ値は、常にNOCOPY
を渡されます。)
-
NOCOPY
を指定した場合、パッケージ変数がこのパラメータに対応する実際の割当てとして渡されると、パッケージ変数に対する割当てが、ただちにこのパラメータに反映されます(またはこのパラメータに対する割当てが、ただちにパッケージ変数に反映されます)。
- 同様に、このパラメータか他のパラメータのいずれかに対する変更は、同じ変数が両方に渡された場合に、ただちに両方の名前で表示されます。
- プロシージャが未処理の例外で終了した場合、このパラメータに対して行われた割当ては、呼出し側の変数に反映されます。
- これらの影響は、すべてのコールで発生するとはかぎりません。
NOCOPY
は、これらの影響が問題にならない場合にのみ使用してください。
関連項目
LoadjavaおよびJavaストアド・プロシージャのデプロイメント・プロファイルの作成