ALTER FUNCTION

Modifica as propriedades de uma função definida pelo usuário ou função externa existente.

Para fazer qualquer outra alteração em uma UDF, você deve descartar a função (usando DROP FUNCTION) e depois recriá-la.

Consulte também:

Como escrever funções externas, Visão geral das funções definidas pelo usuário, CREATE FUNCTION , DROP FUNCTION , SHOW USER FUNCTIONS , DESCRIBE FUNCTION, CREATE EXTERNAL FUNCTION , DESCRIBE FUNCTION , DROP FUNCTION , SHOW EXTERNAL FUNCTIONS

Sintaxe

Funções definidas pelo usuário e externas

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

Funções externas

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

Parâmetros

Funções definidas pelo usuário e externas

name

Especifica o identificador da UDF a ser alterada. O identificador pode conter o nome do esquema e o nome do banco de dados, assim como o nome da função. Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

arg_data_type [ , ... ]

Especifica os argumentos/tipos de dados de entrada para a função externa.

Se a função aceita argumentos, então o comando ALTER deve especificar os tipos de argumentos porque as funções oferecem suporte à sobrecarga de nomes (ou seja, duas funções no mesmo esquema podem ter o mesmo nome), e os tipos de argumentos são usados para identificar a função.

SET ...

SECURE

Especifica se uma função é segura. Para obter mais detalhes, consulte Proteção de informações sensíveis com UDFs e procedimentos armazenados seguros.

COMMENT = 'string_literal'

Adiciona um comentário ou substitui o comentário existente para a função. O valor especificado é exibido na coluna DESCRIPTION na saída SHOW FUNCTIONS e SHOW USER FUNCTIONS.

UNSET ...

Especifica as propriedades a serem removidas para a função, o que as restaura para os padrões.

Funções definidas pelo usuário

RENAME TO new_name

Especifica o novo identificador para o UDF; a combinação do identificador com os tipos de dados de argumentos existentes deve ser única para o esquema.

Para obter mais detalhes, consulte Requisitos para identificadores.

Nota

Ao especificar o novo nome para o UDF, não especifique tipos de dados de argumentos ou parênteses; especifique apenas o novo nome.

Você pode mover o objeto para um banco de dados e/ou esquema diferente enquanto opcionalmente renomeia o objeto. Para isso, especifique um valor qualificado new_name que inclua o novo banco de dados e/ou nome do esquema no formulário db_name.schema_name.object_name ou schema_name.object_name, respectivamente.

Nota

  • O banco de dados e/ou esquema de destino já deve existir. Além disso, um objeto com o mesmo nome não pode já existir no banco de dados de destino; caso contrário, a instrução retorna um erro.

  • É proibido mover um objeto para um esquema de acesso gerenciado a menos que o proprietário do objeto (ou seja, a função que tem o privilégio OWNERSHIP sobre o objeto) também possua o esquema de destino.

Quando um objeto é renomeado, outros objetos que fazem referência a ele devem ser atualizados com o novo nome.

Funções externas

RENAME TO new_name

Especifica o novo identificador da função.

O identificador não precisa ser único para o esquema no qual a função é criada, pois as funções são identificadas e resolvidas por seu nome e tipos de argumentos. No entanto, a assinatura (nome e tipos de dados de parâmetro) deve ser única dentro do esquema.

O name deve seguir as regras para os identificadores Snowflake. Para obter mais detalhes, consulte Requisitos para identificadores.

Nota

Ao especificar o novo nome da função externa, não especifique tipos de dados de argumentos ou parênteses; a função continuará usando os mesmos argumentos que antes.

api_integration_name

Este é o nome do objeto de integração de API que deve ser usado para autenticar a chamada para o serviço de proxy.

Mais detalhes sobre este parâmetro podem ser encontrados em CREATE EXTERNAL FUNCTION.

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

Esta cláusula permite aos usuários anexar os metadados de valor chave que são enviados com cada solicitação.

O valor deve ser uma cadeia de caracteres constante, não uma expressão.

Mais detalhes sobre este parâmetro podem ser encontrados em CREATE EXTERNAL FUNCTION.

CONTEXT_HEADERS (...)

Isto é semelhante a headers, mas em vez de permitir apenas cadeias de caracteres constantes, permite vincular os resultados da função de contexto do Snowflake aos cabeçalhos HTTP.

Cada valor deve ser o nome de uma função de contexto. Os nomes não devem delimitados por aspas.

Mais detalhes sobre este parâmetro podem ser encontrados em CREATE EXTERNAL FUNCTION.

COMPRESSION = <compression_type>

Se esta cláusula for especificada, a carga de JSON é comprimida usando o formato especificado quando enviada do Snowflake para o serviço de proxy, e quando enviada de volta do serviço de proxy para o Snowflake.

Para obter mais detalhes sobre os valores válidos de <compression_type>, consulte CREATE EXTERNAL FUNCTION.

[ REQUEST_TRANSLATOR | RESPONSE_TRANSLATOR ] = <udf_name>

Adicionar um tradutor de solicitação ou um tradutor de resposta se a função externa ainda não tiver um ou substituir um tradutor de solicitação ou tradutor de resposta existente, especificando o nome de um tradutor de solicitação ou tradutor de resposta previamente criado no UDF JavaScript. Para obter mais informações, consulte Uso de tradutores de solicitação e resposta com dados para um serviço remoto.

Notas de uso

  • Em relação aos metadados:

    Atenção

    Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.

Funções definidas pelo usuário

Funções externas

  • Não há comando UNSET para API_INTEGRATION. Você pode mudar o API_INTEGRATION, mas não pode removê-lo. Para obter mais informações, consulte ALTER API INTEGRATION.

Exemplos

Renomear a função function1 como function2:

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

Converter uma função regular function2 em uma função segura:

ALTER FUNCTION function2(number) SET SECURE;
Copy

Funções externas

Alterar o API de integração para uma função externa:

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

Definir o número máximo de linhas por lote para uma função externa:

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