14.7 コール仕様
コール仕様は、PL/SQLから起動できるようにJavaメソッドまたはC言語サブプログラムを宣言します。このようなメソッドまたはサブプログラムは、SQLのCALL
文を使用して起動することもできます。コール仕様は、起動時に起動するJavaメソッドまたは共有ライブラリ内の名前付きサブプログラムをデータベースに指示します。また、引数および戻り値に対して実行する型変換もデータベースに指示します。
前提条件
コール仕様を起動するには、追加の権限が必要になる場合があります。たとえば、Cコール仕様の場合には、Cライブラリに対するEXECUTE
権限が必要です。
構文
call_spec ::=
java_declaration ::=
c_declaration ::=
external_parameter ::=
property ::=
セマンティクス
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
構文を使用します。
例
例14-11 外部ファンクションの例
次に示す仮定の文は、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 (...);
関連トピック
この章:
他の章:
その他のドキュメント:
-
CALL
文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 -
SQL文からコールされるユーザー定義ファンクションの制限の詳細は、『Oracle Database開発ガイド』を参照してください。
-
Javaコール仕様を作成する方法は、『Oracle Database Java開発者ガイド』を参照してください。
-
Cコール仕様を作成する方法は、『Oracle Database開発ガイド』を参照してください。