외부 통합 설정 참조

다음 데이터베이스 오브젝트는 setup_external_integration.sql 파일을 통해 생성됩니다.

PUBLIC.SETUP_EXTERNAL_INTEGRATION_WITH_NAMES()

이 프로시저는 서명이 배열의 프로시저 인자로 전달되는 다른 프로시저 또는 함수를 다음 키 아래에 있는 연결 구성에 저장된 EXTERNAL ACCESS INTEGRATIONSECRET 오브젝트 이름으로 변경합니다.

  • 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
    [...]
Copy

여기서

  • methods ARRAY 는 프로시저/함수 서명의 배열을 varchar로 나타냅니다(예: ARRAY_CONSTRUCT('PUBLIC.PROC_1(VARIANT)', 'PUBLIC.PROC_2()')).

반환 값

프로시저는 항상 표준 커넥터 응답 구조를 가진 베리언트를 반환합니다.

프로시저가 성공적으로 실행된 경우:

{
  "response_code": "OK",
  "message": "Successfully set up <number> method(s)."
}
Copy

참고

인자로 전달된 프로시저/함수 서명이 기존 오브젝트를 나타내지 않거나 애플리케이션에 이러한 오브젝트에 대한 액세스 권한이 없는 경우에도 프로시저 실행이 성공적으로 완료됩니다. 이러한 종류의 프로시저/함수의 변경 프로세스는 건너뛰고 일반 프로세스가 계속 진행됩니다.

장애가 발생한 경우:

{
  "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>"
}
Copy

주의

프로시저는 실행 중에 오류가 발생하더라도 오류를 발생시키지 않습니다. 각 오류는 커넥터 응답에 래핑되고 적절한 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)')
);
Copy

PUBLIC.SETUP_EXTERNAL_INTEGRATION_WITH_REFERENCES()

이 프로시저는 서명이 배열의 프로시저 인자로 전달되는 다른 프로시저 또는 함수를 애플리케이션 참조에 할당된 EXTERNAL ACCESS INTEGRATIONSECRET 오브젝트로 변경합니다. 이 프로시저를 사용할 때는 다음 이름으로 등록된 참조가 있어야 합니다.

  • 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
    [...]
Copy

여기서

  • methods ARRAY 는 프로시저/함수 서명의 배열을 varchar로 나타냅니다(예: ARRAY_CONSTRUCT('PUBLIC.PROC_1(VARIANT)', 'PUBLIC.PROC_2()')).

반환 값

프로시저는 항상 표준 커넥터 응답 구조를 가진 베리언트를 반환합니다.

프로시저가 성공적으로 실행된 경우:

{
  "response_code": "OK",
  "message": "Successfully set up <number> method(s)."
}
Copy

참고

인자로 전달된 프로시저/함수 서명이 기존 오브젝트를 나타내지 않거나 애플리케이션에 이러한 오브젝트에 대한 액세스 권한이 없는 경우에도 프로시저 실행이 성공적으로 완료됩니다. 이러한 종류의 프로시저/함수의 변경 프로세스는 건너뛰고 일반 프로세스가 계속 진행됩니다.

장애가 발생한 경우:

{
  "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>"
}
Copy

주의

프로시저는 실행 중에 오류가 발생하더라도 오류를 발생시키지 않습니다. 각 오류는 커넥터 응답에 래핑되고 적절한 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)')
);
Copy

PUBLIC.SETUP_EXTERNAL_INTEGRATION()

이것은 위에서 설명한 프로시저의 원시 버전으로, 이들도 사용하고 있습니다. 이 프로시저는 서명이 프로시저 인자로 배열로 전달되는 다른 프로시저나 함수를 변경하며, EXTERNAL ACCESS INTEGRATIONSECRET 오브젝트 이름도 프로시저 인자로 전달됩니다. 이 프로시저는 개발자가 프로시저에 외부 액세스 관련 오브젝트에 대한 정보를 제공하는 방법을 자유롭게 결정할 수 있도록 합니다.

credentials 키를 사용하여 변경된 프로시저/함수에 시크릿이 연결됩니다. 기본적으로 프로시저는 애플리케이션 사용자 역할에 사용할 수 없습니다.

이 프로시저는 연결 구성에서 미리 정의된 이름의 참조 또는 미리 정의된 키 아래에 저장된 오브젝트 이름을 사용하는 위에서 설명한 프로시저를 사용할 수 없는 경우에만 사용하는 것이 좋습니다.

프로시저 서명

CREATE OR REPLACE PROCEDURE PUBLIC.SETUP_EXTERNAL_INTEGRATION(eai_idf VARCHAR, secret_idf VARCHAR, methods ARRAY)
    RETURNS VARIANT
    LANGUAGE SQL
    [...]
Copy

여기서

  • 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)."
}
Copy

참고

인자로 전달된 프로시저/함수 서명이 기존 오브젝트를 나타내지 않거나 애플리케이션에 이러한 오브젝트에 대한 액세스 권한이 없는 경우에도 프로시저 실행이 성공적으로 완료됩니다. 이러한 종류의 프로시저/함수의 변경 프로세스는 건너뛰고 일반 프로세스가 계속 진행됩니다.

장애가 발생한 경우:

{
  "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>"
}
Copy

주의

프로시저는 실행 중에 오류가 발생하더라도 오류를 발생시키지 않습니다. 각 오류는 커넥터 응답에 래핑되고 적절한 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)')
);
Copy

setup.sql 스크립트에서 이 프로시저를 사용하려는 경우 SECRETEXTERNAL ACCESS INTEGRATION 오브젝트의 이름이 Native SDK for Connectors에서 권장하는 방식과 다른 방식으로 저장되어 있으므로 어떻게든 이 값을 검색해야 합니다. 이 경우 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;
$$
;
Copy