14.7 コール仕様

コール仕様では、(マルチリンガル・エンジン(MLE)モジュールによってエクスポートされるか、CREATE FUNCTIONおよびCREATE PROCEDURE DDL文の一部としてインラインで宣言された)Javaメソッド、C言語サブプログラムまたはJavaScript関数を宣言して、PL/SQLから起動できるようにします。このようなメソッドまたはサブプログラムは、SQLのCALL文を使用して起動することもできます。

コール仕様は、呼出し時に呼び出すJavaScriptファンクション、Javaメソッド、または共有ライブラリを使用する名前付きサブプログラムをデータベースに指示します。また、引数および戻り値に対して実行する型変換もデータベースに指示します。

コール仕様は、次のSQL文に指定できます。

前提条件

コール仕様を起動するには、追加の権限が必要になる場合があります。たとえば、Cコール仕様の場合には、Cライブラリに対するEXECUTE権限が必要です。

構文

java_declaration ::=

javascript_declaration ::=

c_declaration ::=

external_parameter ::=

セマンティクス

call_spec

Cプロシージャ、Javaメソッド名、またはJavaScriptファンクション名、パラメータ・タイプおよび戻り型をSQLの対応する部分にマップします。

コール仕様は、PL/SQLスタンドアロン・サブプログラム、パッケージ仕様部とパッケージ本体、および型仕様部と型本体に記述できます。PL/SQLブロックの内部には記述できません。

java_declaration

string

メソッドのJava実装を識別します。

javascript_declaration

string

関数のJavaScript実装を識別します。

c_declaration

LIBRARY lib_name

CREATE LIBRARY文によって作成されたライブラリを識別します。

EXTERNAL

下位互換性のためにのみサポートされている、Cサブプログラムの非推奨の宣言方法。Cコール仕様にデフォルト設定された引数または制約付きPL/SQL型が含まれている場合は、その仕様でEXTERNALを使用します。それ以外の場合は、LANGUAGE C構文を使用します。

例14-6 外部ファンクションの例

次に示す仮定の文は、Cサブプログラムc_get_valを外部ファンクションとして登録するPL/SQLスタンドアロン・ファンクションget_valを作成します。(この例ではパラメータを省略しています。)

CREATE FUNCTION get_val
   ( x_val IN NUMBER,
    y_val IN NUMBER,
    image IN LONG RAW )
   RETURN BINARY_INTEGER AS LANGUAGE C
      NAME "c_get_val"
      LIBRARY c_utils
      PARAMETERS (...);

関連トピック

この章:

他の章:

その他のドキュメント: