13.7 コール仕様

コール仕様は、PL/SQLから起動できるようにJavaメソッドまたはC言語サブプログラムを宣言します。このようなメソッドまたはサブプログラムは、SQLのCALL文を使用して起動することもできます。コール仕様は、起動時に起動するJavaメソッドまたは共有ライブラリ内の名前付きサブプログラムをデータベースに指示します。また、引数および戻り値に対して実行する型変換もデータベースに指示します。

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

前提条件

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

構文

java_declaration ::=

c_declaration ::=

external_parameter ::=

セマンティクス

call_spec

Cプロシージャ名またはJavaメソッド名、パラメータ型および戻り型を、対応するSQLにマップします。

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

java_declaration

string

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

c_declaration

LIBRARY lib_name

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

EXTERNAL

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

例13-4 外部ファンクションの例

次に示す仮定の文は、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 (...);

関連トピック

この章:

他の章:

その他のドキュメント: