ALTER FUNCTION

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

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

참고 항목:

외부 함수 쓰기, 사용자 정의 함수 개요, 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 LOG_LEVEL = '<log_level>'

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

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 | LOG_LEVEL | TRACE_LEVEL | COMMENT }

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) UNSET TAG <tag_name> [ , <tag_name> ... ]
Copy

외부 함수

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

매개 변수

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

name

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

arg_data_type [ , ... ]

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

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

SET ...

함수에 대해 설정할 속성을 지정합니다.

SECURE

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

LOG_LEVEL = 'log_level'

수집하여 활성 이벤트 테이블에서 사용 가능하도록 해야 하는 메시지의 심각도 수준을 지정합니다. 지정된 수준과 더 심각한 수준의 메시지가 수집됩니다.

수준에 대한 자세한 내용은 LOG_LEVEL 섹션을 참조하십시오. 로그 수준 설정에 대한 자세한 내용은 로그 수준 설정하기 섹션을 참조하십시오.

TRACE_LEVEL = 'trace_level'

추적 이벤트가 이벤트 테이블에 수집되는 방식을 제어합니다.

수준에 대한 자세한 내용은 TRACE_LEVEL 섹션을 참조하십시오. 추적 수준 설정에 대한 자세한 내용은 추적 수준 설정하기 섹션을 참조하십시오.

COMMENT = 'string_literal'

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

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

태그 이름과 태그 문자열 값을 지정합니다.

태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자입니다.

문에서 태그를 지정하는 방법에 대한 자세한 내용은 오브젝트 및 열에 대한 태그 할당량 섹션을 참조하십시오.

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 = ( [ context_function_1 [ , context_function_2 ... ] ] )

이는 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의 이름을 지정하여 기존 요청 변환기 또는 응답 변환기를 대체합니다. 자세한 내용은 원격 서비스에 대한 데이터와 함께 요청 및 응답 변환기 사용하기 섹션을 참조하십시오.

액세스 제어 요구 사항

이 SQL 명령을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

USAGE

함수

UDF 또는 외부 함수를 호출할 수 있습니다.

APPLY

태그

UDF 또는 외부 함수에 대한 태그 설정을 활성화합니다.

스키마의 모든 오브젝트에 대해 작업하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한도 필요합니다.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

사용법 노트

  • 메타데이터 관련:

    주의

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

사용자 정의 함수

외부 함수

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

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

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

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

ALTER FUNCTION function2(number) SET SECURE;
Copy

외부 함수

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

ALTER FUNCTION function4(number) SET API_INTEGRATION = api_integration_2;
Copy

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

ALTER FUNCTION function5(number) SET MAX_BATCH_ROWS = 100;
Copy