ALTER FUNCTION(Snowpark Container Service)

기존 서비스 함수 의 속성을 수정합니다.

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

참고 항목:

서비스 함수, CREATE FUNCTION, DESC FUNCTION, DROP FUNCTION

구문

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

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 COMMENT = '<string_literal>'

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] )
  SET SERVICE = '<service_name>' ENDPOINT = '<endpoint_name>'

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

매개 변수

name

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

arg_data_type [ , ... ]

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

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

RENAME TO new_name

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

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

참고

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

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

참고

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

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

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

SET ...

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

COMMENT = 'string_literal'

SHOW FUNCTIONSSHOW USER FUNCTIONS 출력의 DESCRIPTION 열에 표시되는 함수에 대한 설명을 지정합니다.

SERVICE = '<service_name>' ENDPOINT = '<endpoint_name>'

서비스 사양에 정의된 서비스 이름과 엔드포인트 이름을 지정합니다.

CONTEXT_HEADERS = ( context_function_1 [ , context_function_2 ... ] )

Snowflake 컨텍스트 함수 결과를 HTTP 헤더에 바인딩할 수 있습니다.

각각의 값은 컨텍스트 함수의 이름이어야 합니다. 이름 주위에 따옴표를 넣지 마십시오.

이 매개 변수에 대한 자세한 내용은 CREATE FUNCTION(Snowpark Container Services) 에 나와 있습니다.

MAX_BATCH_ROWS = integer

동시성 증대를 위해 서비스에 데이터를 전송할 때 배치 크기 를 지정합니다.

UNSET ...

함수에 대해 설정 해제할 속성을 지정하여 기본값으로 재설정합니다. 서비스 엔드포인트를 설정 해제할 수 없습니다.

액세스 제어 요구 사항

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

권한

오브젝트

참고

OWNERSHIP

함수

USAGE

서비스 엔드포인트

서비스 엔드포인트에서의 사용은 서비스 사양에 정의된 서비스 역할에 부여됩니다. 그런 다음 서비스 함수를 변경하는 역할에 서비스 역할을 부여합니다. 서비스 엔드포인트를 변경하는 경우 이 권한이 필요합니다.

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

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

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

사용법 노트

  • 메타데이터 관련:

    주의

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

서비스 함수 이름 바꾸기:

ALTER FUNCTION my_echo_udf(VARCHAR) RENAME TO my_echo_udf_temp;
Copy

서비스 함수에 대한 주석 설정:

ALTER FUNCTION my_echo_udf(VARCHAR) SET COMMENT = 'some comment';
Copy

서비스 함수에 대한 배치당 최대 행 수 설정:

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

서비스 함수에 대한 CURRENT_USER 컨텍스트 헤더 설정:

ALTER FUNCTION my_echo_udf(VARCHAR) SET CONTEXT_HEADER = (CURRENT_USER);
Copy

서비스 함수에 대한 MAX_BATCH_ROWS 설정 해제:

ALTER FUNCTION my_echo_udf(VARCHAR) UNSET MAX_BATCH_ROWS;
Copy