DBMS_CLOUD_FUNCTIONパッケージ
DBMS_CLOUD_FUNCTION
パッケージを使用すると、Autonomous DatabaseのOCIおよびAWS Lambdaリモート・ファンクションをSQLファンクションとして起動できます。
- DBMS_CLOUD_FUNCTIONサブプログラムの要約
この表は、DBMS_CLOUD_FUNCTION
パッケージに含まれるサブプログラムの概要を示しています。
DBMS_CLOUD_FUNCTIONサブプログラムの概要
この表は、DBMS_CLOUD_FUNCTION
パッケージに含まれるサブプログラムの概要を示しています。
サブプログラム | 説明 |
---|---|
このプロシージャは、カタログを作成します。 |
|
このプロシージャは、カタログにファンクションを作成します。 |
|
このプロシージャは、カタログを使用して作成されたカタログおよびファンクションを削除します。 |
|
このプロシージャは、カタログからファンクションを削除します。 |
|
このプロシージャは、カタログ内のすべての関数をリストします。 |
|
このプロシージャは、カタログに新しいファンクションを追加し、カタログから削除されたファンクションのラッパーを削除するためのPL/SQLラッパーを作成します。 |
- CREATE_CATALOGプロシージャ
このプロシージャは、データベースにカタログを作成します。DBMS_CLOUD_FUNCTION.CREATE_CATALOG
プロシージャはカタログを作成します。カタログは、サブルーチンを実行するために必要なインフラストラクチャを作成する一連の関数です。このプロシージャはオーバーロードされています。 - CREATE_FUNCTIONプロシージャ
このプロシージャは、カタログにファンクションを作成します。DBMS_CLOUD_FUNCTION.CREATE_FUNCTION
プロシージャは、2種類オーバーロードされています。 - DROP_CATALOGプロシージャ
DBMS_CLOUD_FUNCTION.DROP_CATALOG
プロシージャは、カタログを使用して作成されたカタログおよびファンクションを削除します。このプロシージャはオーバーロードされています。 - DROP_FUNCTIONプロシージャ
DBMS_CLOUD_FUNCTION.DROP_FUNCTION
プロシージャは、ファンクションを削除します。このプロシージャはオーバーロードされています。 - LIST_FUNCTIONSプロシージャ
このプロシージャは、カタログ内のすべてのファンクションをリストします。 - SYNC_FUNCTIONSプロシージャ
このプロシージャは、カタログに新しいファンクションを追加し、カタログから削除されたファンクションのラッパーを削除するためのPL/SQLラッパーを作成します。
親トピック: DBMS_CLOUD_FUNCTIONパッケージ化
CREATE_CATALOGプロシージャ
このプロシージャは、データベースにカタログを作成します。DBMS_CLOUD_FUNCTION.CREATE_CATALOG
プロシージャはカタログを作成します。カタログは、サブルーチンを実行するために必要なインフラストラクチャを作成する一連の関数です。このプロシージャはオーバーロードされています。
構文
DBMS_CLOUD_FUNCTION.CREATE_CATALOG
(
credential_name IN VARCHAR2,
catalog_name IN VARCHAR2,
service_provider IN VARCHAR2,
cloud_params IN CLOB
);
DBMS_CLOUD_FUNCTION.CREATE_CATALOG
(
library_name IN VARCHAR2,
library_listener_url IN VARCHAR2,
library_wallet_dir_name IN VARCHAR2,
library_ssl_server_cert_dn IN VARCHAR2,
library_remote_path IN VARCHAR2
);
パラメータ
パラメータ | 説明 |
---|---|
|
認証用の資格証明の名前を指定します。 このパラメータは必須です。 |
|
サービス・プロバイダのタイプを指定します。 このパラメータには、パラメータ値として このパラメータは必須です。 |
|
カタログ名を指定します。 このパラメータは必須です。 |
|
関数にパラメータを提供します。たとえば、コンパートメントOCID、リージョンおよびAzure subscription_idです。 このパラメータは必須です。 |
|
リモートライブラリの作成時に、ライブラリの名前を指定します。 このパラメータは必須です。 |
|
ライブラリのリモート位置を指定します。 パラメータは、 たとえば: このパラメータは必須です。 |
|
リモートライブラリのパスを指定します。 リモートライブラリへのフル絶対パスを指定する必要があります。 たとえば: このパラメータは必須です。 |
|
自己署名ウォレットが格納されるディレクトリを指定します。 このパラメータは必須です。 |
|
サーバー証明書の識別名(DN)を指定します。 このパラメータは必須です。 |
エラー
エラー・コード | 説明 |
---|---|
|
このエラーは、次のいずれかの条件で発生します。
|
|
このエラーは、次のいずれかの条件で発生します。
|
|
このエラーは、次のいずれかの条件で発生します。
|
|
このエラーは、サービス・プロバイダが存在しない場合に発生します。 |
サンプル
BEGIN
DBMS_CLOUD_FUNCTION.CREATE_CATALOG
(
credential_name => 'DEFAULT_CREDENTIAL',
catalog_name => 'OCI_DEMO_CATALOG',
service_provider => 'OCI',
cloud_params => ("region_id":"us-phoenix-1", "compartment_id":"compartment_id"
);
END;
/
BEGIN
DBMS_CLOUD_FUNCTION.CREATE_CATALOG
(
credential_name => 'AZURE$PA',
catalog_name => 'AZURE_DEMO_CATALOG',
service_provider => 'AZURE',
cloud_params => '{"subscription_id":"44495e6a-8ff1-4161-b387-0e14e675b878"}'
);
END;
/
BEGIN
DBMS_CLOUD_FUNCTION.CREATE_CATALOG
(
library_name => 'EXT_DEMOLIB',
library_listener_url => 'remote_extproc_hostname:16000',
library_wallet_dir_name => 'WALLET_DIR',
library_ssl_server_cert_dn => 'CN=VM Hostname',
library_remote_path => '/u01/app/oracle/extproc_libs/library name'
);
END;
/
使用上のノート
-
カタログを作成するには、
ADMIN
ユーザーとしてログインするか、次の権限を持っている必要があります。-
DBMS_CLOUD_OCI_FNC_FUNCTIONS_INVOKE
-
DBMS_CLOUD_OCI_FNC_FUNCTIONS_INVOKE_INVOKE_FUNCTION_RESPONSE_T
-
DBMS_CLOUD
-
USER_CLOUD_FUNCTION
に対する読取り権限 -
USER_CLOUD_FUNCTION_CATALOG
に対する読取り権限
-
CREATE_FUNCTIONプロシージャ
このプロシージャは、カタログにファンクションを作成します。DBMS_CLOUD_FUNCTION.CREATE_FUNCTION
プロシージャは、2種類オーバーロードされています。
CREATE_FUNCTION
構文
DBMS_CLOUD_FUNCTION.CREATE_FUNCTION
プロシージャは、クラウド機能でのみサポートされています。
DBMS_CLOUD_FUNCTION.CREATE_FUNCTION
(
credential_name IN VARCHAR2,
catalog_name IN VARCHAR2,
function_name IN VARCHAR2,
function_id IN VARCHAR2,
input_args IN CLOB DEFAULT NULL,
return_type IN VARCHAR2 DEFAULT 'CLOB',
response_handler IN VARCHAR2 DEFAULT NULL
);
レスポンス・ハンドラ署名
<USER DEFINED TYPE> response_handler_name(function_response in CLOB)RETURNS CLOB;
この戻り値の型は、ユーザー定義タイプまたはPL/SQLタイプです。function_response
は、フィールドを含むJSONです。
'{
"STATUS":"<RESPONCE STATUS>",
"RESPONSE_BODY":"<FUNCTION RESPONSE>"
}'
CREATE_FUNCTION
パラメータ
CREATE_FUNCTION
例外
パラメータ | 説明 |
---|---|
|
認証用の資格証明の名前を指定します。 このパラメータは必須です。 |
|
カタログ名を指定します。 このパラメータは必須です。 |
|
PL/SQL関数名を指定します。 このパラメータは必須です。 |
|
このパラメータは必須です。 |
|
入力引数とその型を受け入れるキー値JSONペアを指定します。 |
|
関数の戻り型を定義します。 戻り値のタイプは |
|
レスポンスを処理するユーザー定義コールバックを指定します。 |
エラー・コード | 説明 |
---|---|
|
このエラーは、 |
|
このエラーは、指定したカタログが存在しない場合に発生します。 |
|
このエラーは、指定された関数がすでに存在する場合に発生します。 |
|
このエラーは、関数IDまたは関数 Amazonリソース名(ARN)が存在しない場合に発生します。 |
|
このエラーは、入力引数が無効な場合に発生します。 |
|
このエラーは、戻り型がないか無効な場合に発生します。 |
|
このエラーは、レスポンス・ハンドラがないか無効な場合に発生します。 |
CREATE_FUNCTION
例
VAR function_args CLOB;
EXEC :function_args := TO_CLOB('{"command": "VARCHAR2", "value": "VARCHAR2"}');
BEGIN
DBMS_CLOUD_FUNCTION.CREATE_FUNCTION
(
credential_name => 'DEFAULT_CREDENTIAL',
catalog_name => 'OCI_DEMO_CATALOG',
function_name => 'demo_function',
function_id => 'ocid1.fnfunc.oc1.phx.aaaaaaaazkrbjv6ntowwxlbbp5ct4otsj4o2hdw4ayosyosv4sthmya2lyza',
input_args => :function_args);
);
END;
/
CREATE_FUNCTION
構文
DBMS_CLOUD_FUNCTION.CREATE_FUNCTION
(
library_name IN VARCHAR2,
function_name IN VARCHAR2,
function_id IN VARCHAR2 DEFAULT NULL,
plsql_params IN CLOB DEFAULT NULL,
external_params IN CLOB DEFAULT NULL,
api_type IN VARCHAR2 DEFAULT 'FUNCTION',
with_context IN BOOLEAN DEFAULT FALSE,
return_type IN VARCHAR2 DEFAULT NULL
);
CREATE_FUNCTION
パラメータ
パラメータ | 説明 |
---|---|
|
リモート・ライブラリ名を指定します。 このパラメータは必須です。 |
|
PL/SQL関数名を指定します。 このパラメータは必須です。 |
|
|
|
PL/SQLラッパーのパラメータを受け入れるキー値JSONペアを指定します。 値は
|
|
外部C関数に指定する必要があるパラメータを指定します。
|
|
APIのタイプ(ファンクションまたはプロシージャ)を指定します。
|
|
コンテキスト・ポインタが外部プロシージャに渡されることを指定します。このコンテキストは、外部Cライブラリがデータベースへの接続に使用されます。
|
|
作成された関数の戻り型を指定します。 |
CREATE_FUNCTION
例
DECLARE
plsql_params clob := TO_CLOB('{"sal": "IN, FLOAT", "comm" :"IN, FLOAT"}');
external_params clob := TO_CLOB('sal FLOAT, sal INDICATOR SHORT, comm FLOAT, comm INDICATOR SHORT,
RETURN INDICATOR SHORT, RETURN FLOAT');
BEGIN
DBMS_CLOUD_FUNCTION.CREATE_FUNCTION
(
LIBRARY_NAME => 'demolib',
FUNCTION_NAME => '"PercentComm"',
PLSQL_PARAMS => plsql_params,
EXTERNAL_PARAMS => external_params,
API_TYPE => 'FUNCTION',
WITH_CONTEXT => FALSE,
RETURN_TYPE => 'FLOAT'
);
END;
/
DROP_CATALOGプロシージャ
DBMS_CLOUD_FUNCTION.DROP_CATALOG
プロシージャは、カタログを使用して作成されたカタログおよびファンクションを削除します。このプロシージャはオーバーロードされています。
構文
DBMS_CLOUD_FUNCTION.DROP_CATALOG
(
catalog_name IN VARCHAR2
);
DBMS_CLOUD_FUNCTION.DROP_CATALOG
(
library_name IN VARCHAR2
);
パラメータ
パラメータ | 説明 |
---|---|
|
カタログ名を指定します。 このパラメータは必須です。 |
library_name |
ライブラリ名を指定します。 このパラメータは必須です。 |
エラー
エラー・コード | 説明 |
---|---|
|
このエラーは、指定されたカタログが存在しない場合に発生します。 |
次に例を示します:
BEGIN
DBMS_CLOUD_FUNCTION.DROP_CATALOG
(
catalog_name => 'OCI_DEMO_CATALOG'
);
END;
/
次に例を示します:
BEGIN
DBMS_CLOUD_FUNCTION.DROP_CATALOG
(
library_name => 'library_name'
);
END;
/
DROP_FUNCTIONプロシージャ
DBMS_CLOUD_FUNCTION.DROP_FUNCTION
プロシージャは、ファンクションを削除します。このプロシージャはオーバーロードされています。
構文
DBMS_CLOUD_FUNCTION.DROP_FUNCTION
プロシージャは、クラウド機能でのみサポートされています。
DBMS_CLOUD_FUNCTION.DROP_FUNCTION
(
catalog_name IN VARCHAR2,
function_name IN VARCHAR2
);
DBMS_CLOUD_FUNCTION.DROP_FUNCTION
(
library_name IN VARCHAR2,
function_name IN VARCHAR2
);
パラメータ
パラメータ | 説明 |
---|---|
|
カタログ名を指定します。 このパラメータは必須です。 |
|
削除するファンクションの名前を指定します。 このパラメータは必須です。 |
|
ライブラリ名を指定します。 このパラメータは必須です。 |
サンプル
BEGIN
DBMS_CLOUD_FUNCTION.DROP_FUNCTION
(
catalog_name => 'OCI_DEMO_CATALOG',
function_name => 'demo_function');
END;
/
BEGIN
DBMS_CLOUD_FUNCTION.DROP_FUNCTION
(
library_name => 'EXTPROC_DEMO_LIBRARY',
function_name => 'demo_function');
END;
/
LIST_FUNCTIONSプロシージャ
このプロシージャは、カタログ内のすべての関数をリストします。
構文
DBMS_CLOUD_FUNCTION.LIST_FUNCTIONS
(
credential_name IN VARCHAR2,
catalog_name IN VARCHAR2,
function_list OUT VARCHAR2
);
パラメータ
パラメータ | 説明 |
---|---|
|
認証用の資格証明の名前を指定します。 このパラメータは必須です。 |
|
関数のリストをJSON形式で返します。 このパラメータは必須です。 |
|
カタログ名を指定します。 このパラメータは必須です。 |
エラー
エラー・コード | 説明 |
---|---|
|
このエラーは、 |
|
このエラーは、 |
|
このエラーは、指定したカタログが存在しない場合に発生します。 |
例:
VAR function_list CLOB;
BEGIN
DBMS_CLOUD_FUNCTION.LIST_FUNCTIONS
(
credential_name => 'DEFAULT_CREDENTIAL',
catalog_name => 'OCI_DEMO_CATALOG',
function_list => :function_list);
);
END;
/
SELECT JSON_QUERY(:function_list, '$' RETURNING VARCHAR2(32676) pretty) AS search_results FROM dual;
SYNC_FUNCTIONSプロシージャ
このプロシージャは、カタログに新しいファンクションを追加し、カタログから削除されたファンクションのラッパーを削除するためのPL/SQLラッパーを作成します。
構文
DBMS_CLOUD_FUNCTION.SYNC_FUNCTIONS
(
catalog_name IN VARCHAR2,
refresh_rate IN VARCHAR2 DEFAULT 'DAILY'
);
パラメータ
パラメータ | 説明 |
---|---|
|
カタログ名を指定します。 このパラメータは必須です。 |
|
関数のリフレッシュ率を指定します。 refresh_rate には、次の値を指定できます。
このパラメータのデフォルト値は |
エラー
エラー・コード | 説明 |
---|---|
|
このエラーは、指定したカタログが存在しない場合に発生します。 |
|
このエラーは、 |
例:
BEGIN
DBMS_CLOUD_FUNCTION.SYNC_FUNCTIONS
(
catalog_name => 'OCI_DEMO_CATALOG'
);
END;
/