DBMS_CLOUD_FUNCTIONパッケージ
DBMS_CLOUD_FUNCTIONパッケージを使用すると、Autonomous AI DatabaseでOCIおよびAWSラムダ・リモート関数をSQL関数として起動できます。
ノート:
DBMS_CLOUD_FUNCTIONのサポートは、バージョン19.29以降のOracle Database 19c、およびバージョン23.26以降のOracle AI Database 26aiで使用できます。
DBMS_CLOUD_FUNCTIONサブプログラムの要約
DBMS_CLOUD_FUNCTIONパッケージに含まれるサブプログラムの概要を示しています。
表- DBMS_CLOUD_FUNCTIONサブプログラム
| サブプログラム | 摘要 |
|---|---|
| CREATE_CATALOGプロシージャ | このプロシージャは、カタログを作成します。 |
| CREATE_FUNCTIONプロシージャ | このプロシージャは、カタログにファンクションを作成します。 |
| DROP_CATALOGプロシージャ | このプロシージャは、カタログを使用して作成されたカタログおよび関数を削除します。 |
| DROP_FUNCTIONプロシージャ | このプロシージャは、カタログからファンクションを削除します。 |
| LIST_FUNCTIONSプロシージャ | このプロシージャは、カタログ内のすべての関数をリストします。 |
| SYNC_FUNCTIONSプロシージャ | このプロシージャを使用すると、カタログに新しい機能を追加したり、カタログから削除された機能を削除できます。 |
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
);
Parameters
| パラメータ | 説明 |
|---|---|
|
|
認証用の資格証明の名前を指定します。 このパラメータは必須です。 |
|
|
サービス・プロバイダのタイプを指定します。 このパラメータには、パラメータ値として このパラメータは必須です。 |
|
|
カタログ名を指定します。 このパラメータは必須です。 |
|
|
関数にパラメータを指定します。たとえば、コンパートメントOCIDおよびリージョンです。 このパラメータは必須です。 |
エラー数
| エラー・コード | 説明 |
|---|---|
|
|
このエラーは、次の状況で発生します。
|
|
|
このエラーは、次の状況で発生します。
|
|
|
このエラーは、次の状況で発生します。
|
|
|
このエラーは、サービス・プロバイダが存在しない場合に発生します。 |
例
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;
/
使用上のノート
-
カタログを作成するには、
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プロシージャは、クラウド関数でのみサポートされています。
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>"
}'
Parameters
| パラメータ | 説明 |
|---|---|
|
|
認証用の資格証明の名前を指定します。 このパラメータは必須です。 |
|
|
カタログ名を指定します。 このパラメータは必須です。 |
|
|
PL/SQLファンクション名を指定します。 このパラメータは必須です。 |
|
|
このパラメータは必須です。 |
|
|
入力引数とその型を受け入れるキー値JSONペアを指定します。 |
|
|
関数の戻り型を定義します。 戻り値のタイプは |
|
|
レスポンスを処理するユーザー定義のコールバックを指定します。 |
エラー数
| エラー・コード | 説明 |
|---|---|
|
|
このエラーは、 |
|
|
このエラーは、指定したカタログが存在しない場合に発生します。 |
|
|
このエラーは、指定された関数がすでに存在する場合に発生します。 |
|
|
このエラーは、関数IDまたは関数 Amazonリソース名(ARN)が存在しない場合に発生します。 |
|
|
このエラーは、入力引数が無効な場合に発生します。 |
|
|
このエラーは、戻り型がないか無効である場合に発生します。 |
|
|
このエラーは、レスポンス・ハンドラがないか無効である場合に発生します。 |
例
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;
/
DROP_CATALOGプロシージャ
DBMS_CLOUD_FUNCTION.DROP_CATALOGプロシージャは、カタログを使用して作成されたカタログおよびファンクションを削除します。
構文
DBMS_CLOUD_FUNCTION.DROP_CATALOG (
catalog_name IN VARCHAR2
);
Parameters
| パラメータ | 説明 |
|---|---|
|
|
カタログ名を指定します。 このパラメータは必須です。 |
エラー数
| エラー・コード | 説明 |
|---|---|
|
|
このエラーは、指定したカタログが存在しない場合に発生します。 |
次に例を示します:
BEGIN
DBMS_CLOUD_FUNCTION.DROP_CATALOG (
catalog_name => 'OCI_DEMO_CATALOG'
);
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
);
Parameters
| パラメータ | 説明 |
|---|---|
|
|
カタログ名を指定します。 このパラメータは必須です。 |
|
|
削除するファンクション名を指定します。 このパラメータは必須です。 |
エラー数
| エラー・コード | 説明 |
|---|---|
|
|
このエラーは、指定された関数が存在しない場合に発生します。 |
例
BEGIN
DBMS_CLOUD_FUNCTION.DROP_FUNCTION (
catalog_name => 'OCI_DEMO_CATALOG',
function_name => 'demo_function');
END;
/
LIST_FUNCTIONSプロシージャ
このプロシージャは、カタログ内のすべての関数をリストします。
構文
DBMS_CLOUD_FUNCTION.LIST_FUNCTIONS (
credential_name IN VARCHAR2,
catalog_name IN VARCHAR2,
function_list OUT VARCHAR2
);
Parameters
| パラメータ | 説明 |
|---|---|
|
|
認証用の資格証明の名前を指定します。 このパラメータは必須です。 |
|
|
関数のリストを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プロシージャ
このプロシージャを使用すると、カタログに新しい機能を追加したり、カタログから削除された機能を削除できます。
構文
DBMS_CLOUD_FUNCTION.SYNC_FUNCTIONS (
catalog_name IN VARCHAR2,
refresh_rate IN VARCHAR2 DEFAULT 'DAILY'
);
Parameters
| パラメータ | 説明 |
|---|---|
|
|
カタログ名を指定します。 このパラメータは必須です。 |
|
|
関数のリフレッシュ率を指定します。 refresh_rateには、次の値を指定できます。
このパラメータのデフォルト値は |
エラー数
| エラー・コード | 説明 |
|---|---|
|
|
このエラーは、指定したカタログが存在しない場合に発生します。 |
|
|
このエラーは、 |
次に例を示します:
BEGIN
DBMS_CLOUD_FUNCTION.SYNC_FUNCTIONS (
catalog_name => 'OCI_DEMO_CATALOG'
);
END;
/