DBMS_CLOUD_FUNCTION 패키지
DBMS_CLOUD_FUNCTION 패키지를 사용하면 자율운영 AI 데이터베이스에서 OCI 및 AWS 람다 원격 함수를 SQL 함수로 호출할 수 있습니다.
주:
DBMS_CLOUD_FUNCTION에 대한 지원은 Oracle Database 19c 버전 19.29부터, Oracle AI Database 26ai 버전 23.26부터 제공됩니다.
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 프로시저는 데이터베이스에 카탈로그를 만듭니다. 카탈로그는 서브 루틴을 실행하는 데 필요한 Infrastructure를 생성하는 일련의 함수입니다.
구문
DBMS_CLOUD_FUNCTION.CREATE_CATALOG (
credential_name IN VARCHAR2,
catalog_name IN VARCHAR2,
service_provider IN VARCHAR2,
cloud_params IN CLOB
);
매개변수
| 매개변수 | 설명 |
|---|---|
|
|
인증에 사용할 인증서의 이름을 지정합니다. 이 매개변수는 필수입니다. |
|
|
서비스 제공자의 유형을 지정합니다. 이 매개변수는 이 매개변수는 필수입니다. |
|
|
카탈로그 이름을 지정합니다. 이 매개변수는 필수입니다. |
|
|
함수에 매개변수를 제공합니다. 컴파트먼트 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>"
}'
매개변수
| 매개변수 | 설명 |
|---|---|
|
|
인증에 사용할 인증서의 이름을 지정합니다. 이 매개변수는 필수입니다. |
|
|
카탈로그 이름을 지정합니다. 이 매개변수는 필수입니다. |
|
|
PL/SQL 함수 이름을 지정합니다. 이 매개변수는 필수입니다. |
|
|
이 매개변수는 필수입니다. |
|
|
입력 인수 및 해당 유형을 수락하는 키 값 JSON 쌍을 지정합니다. |
|
|
함수의 반송 유형을 정의합니다. 반환 유형은 |
|
|
응답을 처리할 사용자 정의 콜백을 지정합니다. |
오류
| 오류 코드 | 설명 |
|---|---|
|
|
이 오류는 |
|
|
이 오류는 지정된 카탈로그가 없을 때 발생합니다. |
|
|
이 오류는 지정된 함수가 이미 있을 때 발생합니다. |
|
|
이 오류는 함수 ID 또는 함수 ARN(Amazon Resource Names)이 존재하지 않을 때 발생합니다. |
|
|
이 오류는 입력 인수가 유효하지 않을 때 발생합니다. |
|
|
반환 유형이 누락되었거나 부적합한 경우 이 오류가 발생합니다. |
|
|
응답 처리기가 누락되었거나 부적합한 경우 이 오류가 발생합니다. |
예
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
);
매개변수
| 매개변수 | 설명 |
|---|---|
|
|
카탈로그 이름을 지정합니다. 이 매개변수는 필수입니다. |
오류
| 오류 코드 | 설명 |
|---|---|
|
|
이 오류는 지정된 카탈로그가 없을 때 발생합니다. |
예:
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
);
매개변수
| 매개변수 | 설명 |
|---|---|
|
|
카탈로그 이름을 지정합니다. 이 매개변수는 필수입니다. |
|
|
삭제할 함수의 이름을 지정합니다. 이 매개변수는 필수입니다. |
오류
| 오류 코드 | 설명 |
|---|---|
|
|
이 오류는 지정된 함수가 없을 때 발생합니다. |
예
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
);
매개변수
| 매개변수 | 설명 |
|---|---|
|
|
인증에 사용할 인증서의 이름을 지정합니다. 이 매개변수는 필수입니다. |
|
|
함수 목록을 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'
);
매개변수
| 매개변수 | 설명 |
|---|---|
|
|
카탈로그 이름을 지정합니다. 이 매개변수는 필수입니다. |
|
|
함수의 새로 고침 속도를 지정합니다. refresh_rate는 다음 값을 사용할 수 있습니다.
이 매개변수의 기본값은 |
오류
| 오류 코드 | 설명 |
|---|---|
|
|
이 오류는 지정된 카탈로그가 없을 때 발생합니다. |
|
|
이 오류는 |
예:
BEGIN
DBMS_CLOUD_FUNCTION.SYNC_FUNCTIONS (
catalog_name => 'OCI_DEMO_CATALOG'
);
END;
/