外部統合セットアップリファレンス¶
次のデータベースオブジェクトは、ファイル setup_external_integration.sql
を通して作成されます。
PUBLIC.SETUP_EXTERNAL_INTEGRATION_WITH_NAMES()¶
このプロシージャは、他のプロシージャや関数を変更します。そのシグネチャは、 EXTERNAL ACCESS INTEGRATION
と SECRET
オブジェクト名を持つ配列でプロシージャの引数として渡され、以下のキーで接続構成に格納されます。
EXTERNAL ACCESS INTEGRATION
オブジェクト識別子のためのexternal_access_configuration
。
SECRET
オブジェクト識別子のためのsecret
。
シークレットは credentials
キーで変更されたプロシージャ/関数に添付されます。既定のプロシージャは、どのアプリケーション・ユーザー・ロールでも使用できません。
プロシージャ署名¶
CREATE OR REPLACE PROCEDURE PUBLIC.SETUP_EXTERNAL_INTEGRATION_WITH_NAMES(methods ARRAY) RETURNS VARIANT LANGUAGE SQL [...]
条件:
methods ARRAY
は、プロシージャ/関数のシグネチャを varchar で表した配列を表します。ARRAY_CONSTRUCT('PUBLIC.PROC_1(VARIANT)', 'PUBLIC.PROC_2()')
などです。
返される値¶
プロシージャは常に標準コネクタ応答構造を持つバリアントを返します。
プロシージャ実行が成功した場合:
{ "response_code": "OK", "message": "Successfully set up <number> method(s)." }注釈
引数として渡されたプロシージャ/関数シグネチャが既存のオブジェクトを表していない場合や、アプリケーションがこれらのオブジェクトにアクセスできない場合でも、プロシージャの実行は正常に終了します。この種のプロシージャ/関数の変更プロセスはスキップされ、一般的なプロセスが続行されます。
失敗した場合:
{ "response_code": "<ERROR_CODE>", "message": "<error message>", "SQLCODE": "<code of a thrown exception>", "SQLERRM": "<error message of a thrown exception>", "SQLCODE": "<sql code of a thrown exception>" }注意
実行中にエラーが発生しても、プロシージャはエラーをスローしません。各エラーはコネクタのレスポンスにラップされ、適切な
response_code
にマッピングされます。これにより、アプリケーションのインストール中にプロシージャの結果を検証し、setup.sql
で安全に使用することができます(そうでない場合、未処理のエラーがあるとアプリケーションのインストールプロセスが中断され、終了する可能性があります)。
考えられるエラー:¶
EAI_UNAVAILABLE
-EXTERNAL ACCESS INTEGRATION
オブジェクトが存在しないか、アプリケーションにUSAGE
権限がない場合。SECRET_UNAVAILABLE
-SECRET
オブジェクトが存在しないか、アプリケーションに少なくともREAD
権限がない場合。INTERNAL ERROR
- このレスポンスコードは、予期せぬエラーが発生した場合に返されます。
使用例¶
CALL PUBLIC.SETUP_EXTERNAL_INTEGRATION_WITH_NAMES(ARRAY_CONSTRUCT( 'PUBLIC.TEST_CONNECTION()', 'PUBLIC.FINALIZE_CONFIGURATION(VARIANT)', 'PUBLIC.TEMPLATE_WORKER(NUMBER, STRING)') );
PUBLIC.SETUP_EXTERNAL_INTEGRATION_WITH_REFERENCES()¶
このプロシージャは他のプロシージャや関数を変更します。そのシグネチャはプロシージャの引数として配列で渡され、 EXTERNAL ACCESS INTEGRATION
と SECRET
オブジェクトがアプリケーションリファレンスに代入されます。このプロシージャを使用する場合、以下の名前でリファレンスを登録する必要があります。
EAI_REFERENCE
-EXTERNAL ACCESS INTEGRATION
オブジェクトへのリファレンス。SECRET_REFERENCE
-SECRET
オブジェクトへのリファレンス。
シークレットは credentials
キーで変更されたプロシージャ/関数に添付されます。既定のプロシージャは、どのアプリケーション・ユーザー・ロールでも使用できません。
プロシージャ署名¶
CREATE OR REPLACE PROCEDURE PUBLIC.SETUP_EXTERNAL_INTEGRATION_WITH_REFERENCES(methods ARRAY) RETURNS VARIANT LANGUAGE SQL [...]
条件:
methods ARRAY
は、プロシージャ/関数のシグネチャを varchar で表した配列を表します。ARRAY_CONSTRUCT('PUBLIC.PROC_1(VARIANT)', 'PUBLIC.PROC_2()')
などです。
返される値¶
プロシージャは常に標準コネクタ応答構造を持つバリアントを返します。
プロシージャ実行が成功した場合:
{ "response_code": "OK", "message": "Successfully set up <number> method(s)." }注釈
引数として渡されたプロシージャ/関数シグネチャが既存のオブジェクトを表していない場合や、アプリケーションがこれらのオブジェクトにアクセスできない場合でも、プロシージャの実行は正常に終了します。この種のプロシージャ/関数の変更プロセスはスキップされ、一般的なプロセスが続行されます。
失敗した場合:
{ "response_code": "<ERROR_CODE>", "message": "<error message>", "SQLCODE": "<code of a thrown exception>", "SQLERRM": "<error message of a thrown exception>", "SQLCODE": "<sql code of a thrown exception>" }注意
実行中にエラーが発生しても、プロシージャはエラーをスローしません。各エラーはコネクタのレスポンスにラップされ、適切な
response_code
にマッピングされます。これにより、アプリケーションのインストール中にプロシージャの結果を検証し、setup.sql
で安全に使用することができます(そうでない場合、未処理のエラーがあるとアプリケーションのインストールプロセスが中断され、終了する可能性があります)。
考えられるエラー:¶
EAI_UNAVAILABLE
-EXTERNAL ACCESS INTEGRATION
オブジェクトが存在しないか、アプリケーションにUSAGE
権限がない場合。SECRET_UNAVAILABLE
-SECRET
オブジェクトが存在しないか、アプリケーションに少なくともREAD
権限がない場合。INTERNAL ERROR
- このレスポンスコードは、予期せぬエラーが発生した場合に返されます。
使用例¶
CALL PUBLIC.SETUP_EXTERNAL_INTEGRATION_WITH_REFERENCES(ARRAY_CONSTRUCT( 'PUBLIC.TEST_CONNECTION()', 'PUBLIC.FINALIZE_CONFIGURATION(VARIANT)', 'PUBLIC.TEMPLATE_WORKER(NUMBER, STRING)') );
PUBLIC.SETUP_EXTERNAL_INTEGRATION()¶
これは上記のプロシージャのrawバージョンで、それらも使用しています。このプロシージャは、他のプロシージャや関数を変更します。そのシグネチャは、プロシージャの引数として渡される配列で、 EXTERNAL ACCESS INTEGRATION
と、 SECRET
オブジェクト名で渡されます。このプロシージャでは、外部アクセスに関連するオブジェクトの情報をどのようにプロシージャに提供するか、開発者が自由に決めることができます。
シークレットは credentials
キーで変更されたプロシージャ/関数に添付されます。既定のプロシージャは、どのアプリケーション・ユーザー・ロールでも使用できません。
このプロシージャの使用は、接続構成で定義済みの名前のリファレンスや、定義済みのキーの基になるオブジェクト名を使用する上記のプロシージャを使用する可能性がない場合にのみ推奨されます。
プロシージャ署名¶
CREATE OR REPLACE PROCEDURE PUBLIC.SETUP_EXTERNAL_INTEGRATION(eai_idf VARCHAR, secret_idf VARCHAR, methods ARRAY) RETURNS VARIANT LANGUAGE SQL [...]
条件:
eai_idf VARCHAR
-EXTERNAL_ACCESS_INTEGRATION
オブジェクトの識別子。リファレンス名を渡したい場合は、次のようにラップする必要があります:'reference(\'<reference_name>\')'
secret_idf VARCHAR
-SECRET
オブジェクトの識別子。リファレンス名を渡したい場合は、次のようにラップする必要があります:'reference(\'<reference_name>\')'
methods ARRAY
は、プロシージャ/関数のシグネチャを varchar で表した配列を表します。ARRAY_CONSTRUCT('PUBLIC.PROC_1(VARIANT)', 'PUBLIC.PROC_2()')
などです。
返される値¶
プロシージャは常に標準コネクタ応答構造を持つバリアントを返します。
プロシージャ実行が成功した場合:
{ "response_code": "OK", "message": "Successfully set up <number> method(s)." }注釈
引数として渡されたプロシージャ/関数シグネチャが既存のオブジェクトを表していない場合や、アプリケーションがこれらのオブジェクトにアクセスできない場合でも、プロシージャの実行は正常に終了します。この種のプロシージャ/関数の変更プロセスはスキップされ、一般的なプロセスが続行されます。
失敗した場合:
{ "response_code": "<ERROR_CODE>", "message": "<error message>", "SQLCODE": "<code of a thrown exception>", "SQLERRM": "<error message of a thrown exception>", "SQLCODE": "<sql code of a thrown exception>" }注意
実行中にエラーが発生しても、プロシージャはエラーをスローしません。各エラーはコネクタのレスポンスにラップされ、適切な
response_code
にマッピングされます。これにより、アプリケーションのインストール中にプロシージャの結果を検証し、setup.sql
で安全に使用することができます(そうでない場合、未処理のエラーがあるとアプリケーションのインストールプロセスが中断され、終了する可能性があります)。
考えられるエラー:¶
EAI_UNAVAILABLE
-EXTERNAL ACCESS INTEGRATION
オブジェクトが存在しないか、アプリケーションにUSAGE
権限がない場合。SECRET_UNAVAILABLE
-SECRET
オブジェクトが存在しないか、アプリケーションに少なくともREAD
権限がない場合。INTERNAL ERROR
- このレスポンスコードは、予期せぬエラーが発生した場合に返されます。
使用例¶
CALL PUBLIC.SETUP_EXTERNAL_INTEGRATION( 'EXAMPLE_EAI_IDF', 'reference(\'CUSTOM_REFERENCE_NAME\')', ARRAY_CONSTRUCT('PUBLIC.TEST_CONNECTION()', 'PUBLIC.FINALIZE_CONFIGURATION(VARIANT)', 'PUBLIC.TEMPLATE_WORKER(NUMBER, STRING)') );
このプロシージャを setup.sql
スクリプトで使用する場合、 SECRET
および EXTERNAL ACCESS INTEGRATION
オブジェクトの名前が、コネクタのネイティブ SDK で推奨されている方法とは異なる方法で格納されている場合は、これらの値を何らかの方法で取得する必要があります。この場合、 EXECUTE IMMEDIATE
メカニズムを使用できます.
EXECUTE IMMEDIATE $$ DECLARE eai_idf VARCHAR; secret_idf VARCHAR; BEGIN -- retrieve name of an EXTERNAL ACCESS INTEGRATION object :eai_idf = <eai_object_name>; -- retrieve name of a SECRET object :secret_idf = <secret_object_name>; CALL PUBLIC.SETUP_EXTERNAL_INTEGRATION( :eai_idf, :secret_idf, ARRAY_CONSTRUCT('PUBLIC.TEST_CONNECTION()', 'PUBLIC.FINALIZE_CONFIGURATION(VARIANT)', 'PUBLIC.TEMPLATE_WORKER(NUMBER, STRING)') ); END; $$ ;