카테고리:

사용자 정의 함수, 외부 함수 및 저장 프로시저용 DDL

ALTER FUNCTION

기존 사용자 정의 함수 또는 외부 함수의 속성을 수정합니다.

UDF에 다른 변경 사항을 적용하려면 (DROP FUNCTION 을 사용해) 함수를 삭제한 다음 다시 만들어야 합니다.

참고 항목:

외부 함수, UDFs(사용자 정의 함수), CREATE FUNCTION , DROP FUNCTION , SHOW USER FUNCTIONS , DESCRIBE FUNCTION, CREATE EXTERNAL FUNCTION , DESCRIBE FUNCTION , DROP FUNCTION , SHOW EXTERNAL FUNCTIONS

구문

사용자 정의 함수 및 외부 함수

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) RENAME TO <new_name>

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET COMMENT = '<string_literal>'

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET SECURE

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) UNSET { SECURE | COMMENT }

외부 함수

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET API_INTEGRATION = <api_integration_name>

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET HEADERS = ( [ '<header_1>' = '<value>' [ , '<header_2>' = '<value>' ... ] ] )

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET CONTEXT_HEADERS = ( [ <context_function_1> [ , context_function_2> ...] ] )

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET MAX_BATCH_ROWS = <integer>

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET COMPRESSION = <compression_type>

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET [ REQUEST_TRANSLATOR | RESPONSE_TRANSLATOR ] = <udf_name>

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) UNSET { COMMENT | HEADERS | CONTEXT_HEADERS | MAX_BATCH_ROWS | COMPRESSION | SECURE | REQUEST_TRANSLATOR | RESPONSE_TRANSLATOR }

매개 변수

사용자 정의 함수 및 외부 함수

name

변경할 UDF의 식별자를 지정합니다. 이 식별자에는 함수 이름뿐 아니라 스키마 이름과 데이터베이스 이름도 포함될 수 있습니다. 식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

arg_data_type [ , ... ]

외부 함수에 대한 인자/입력 데이터 타입을 지정합니다.

함수는 이름 오버로딩을 지원하므로 이 함수가 인자를 허용하는 경우에는 ALTER 명령이 인자 유형을 지정해야 하며(즉, 같은 스키마에 있는 두 함수는 같은 이름을 가질 수 있음) 인자 유형은 함수를 식별하는 데 사용됩니다.

SET ...

SECURE

함수가 안전한지 여부를 지정합니다. 자세한 내용은 Secure UDF와 저장 프로시저로 민감한 정보 보호하기 섹션을 참조하십시오.

COMMENT = 'string_literal'

함수에 대한 설명을 추가하거나 기존 설명을 덮어씁니다. 지정한 값은 SHOW FUNCTIONSSHOW USER FUNCTIONS 출력의 DESCRIPTION 열에 표시됩니다.

UNSET ...

함수에 대해 설정 해제할 속성을 지정하여 기본값으로 재설정합니다.

사용자 정의 함수

RENAME TO new_name

UDF에 대해 새 식별자를 지정하는데, 식별자와 기존 인자 데이터 타입의 조합은 스키마에 대해 고유해야 합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

참고

UDF에 대한 새 이름을 지정할 때 인자 데이터 타입이나 괄호를 지정하지 말고, 새 이름만 지정하십시오.

선택적으로 오브젝트의 이름을 바꾸는 동안 오브젝트를 다른 데이터베이스 및/또는 스키마로 이동할 수 있습니다. 그러려면 각각 db_name.schema_name.object_name 또는 schema_name.object_name 형식으로 새 데이터베이스 및/또는 스키마 이름을 포함하는 정규화된 new_name 값을 지정하십시오.

참고

  • 대상 데이터베이스 및/또는 스키마가 이미 있어야 합니다. 또한, 새 위치에 이름이 같은 오브젝트가 있으면 안 됩니다. 그렇지 않으면 문이 오류를 반환합니다.

  • 오브젝트 소유자(즉, 오브젝트에 대한 OWNERSHIP 권한을 가진 역할) 역시 대상 스키마를 소유하지 않는 한 오브젝트를 관리되는 액세스 스키마로 이동하는 것은 금지됩니다.

오브젝트의 이름이 바뀌면 그 오브젝트를 참조하는 다른 오브젝트도 새 이름으로 업데이트해야 합니다.

외부 함수

RENAME TO new_name

함수의 새 식별자를 지정합니다.

함수는 그 이름과 인자 유형으로 식별과 확인이 이루어지므로 함수가 생성되는 스키마에 대해 고유한 식별자일 필요는 없습니다. 하지만 스키마 내에서 서명(이름 및 매개 변수 데이터 타입)은 고유해야 합니다.

name 은 Snowflake 식별자 에 대한 규칙을 따라야 합니다. 자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

참고

외부 함수의 이름을 지정할 때 인자 데이터 타입이나 괄호를 지정하지 마십시오. 이 함수는 이전과 같은 인자를 계속 사용합니다.

api_integration_name

이것은 프록시 서비스 호출의 인증에 사용해야 하는 API 통합 오브젝트의 이름입니다.

이 매개 변수에 대한 자세한 내용은 CREATE EXTERNAL FUNCTION 에 나와 있습니다.

[ HEADERS = ( '<header_1>' = '<value>' [ , '<header_2>' = '<value>' ... ] ) ]

사용자는 이 절을 통해 모든 요청과 함께 전송되는 키-값 메타데이터를 연결할 수 있습니다.

이 값은 식이 아닌 상수 문자열이어야 합니다.

이 매개 변수에 대한 자세한 내용은 CREATE EXTERNAL FUNCTION 에 나와 있습니다.

CONTEXT_HEADERS (...)

이는 headers 와 유사하지만, 상수 문자열만 허용하는 대신 Snowflake 컨텍스트 함수 결과를 HTTP 헤더에 바인딩하도록 허용합니다.

각각의 값은 컨텍스트 함수의 이름이어야 합니다. 그 이름을 인용해서는 안 됩니다.

이 매개 변수에 대한 자세한 내용은 CREATE EXTERNAL FUNCTION 에 나와 있습니다.

COMPRESSION = <compression_type>

이 절을 지정하면 Snowflake에서 프록시 서비스로 보낼 때와 프록시 서비스에서 Snowflake로 다시 보낼 때 JSON 페이로드가 지정된 형식을 사용하여 압축됩니다.

<compression_type> 의 유효한 값에 대한 자세한 내용은 CREATE EXTERNAL FUNCTION 섹션을 참조하십시오.

[ REQUEST_TRANSLATOR | RESPONSE_TRANSLATOR ] = <udf_name>

외부 함수에 아직 없는 경우 요청 변환기 또는 응답 변환기를 추가하거나 이전에 생성된 JavaScript UDF의 이름을 지정하여 기존 요청 변환기 또는 응답 변환기를 대체합니다. 자세한 내용은 원격 서비스에 대한 데이터와 함께 요청 및 응답 변환기 사용하기 섹션을 참조하십시오.

사용법 노트

  • 메타데이터 관련:

    주의

    고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.

사용자 정의 함수

외부 함수

  • API_INTEGRATION에 대한 UNSET 명령은 없습니다. API_INTEGRATION을 변경할 수 있지만 설정 해제할 수는 없습니다. 자세한 내용은 ALTER API INTEGRATION 섹션을 참조하십시오.

함수의 이름을 function1 에서 function2 로 바꿉니다.

ALTER FUNCTION IF EXISTS function1(number) RENAME TO function2;

정규 함수 function2 를 보안 함수로 변환합니다.

ALTER FUNCTION function2(number) SET SECURE;

외부 함수

외부 함수에 대한 API 통합을 변경합니다.

ALTER FUNCTION function4(number) SET api_integration = api_integration_2;

외부 함수에 대한 배치당 최대 행 수를 설정합니다.

ALTER FUNCTION function5(number) SET max_batch_rows = 100;
맨 위로 이동