A instrução FUNCTION cria uma função definida pelo usuário (UDF) SQL temporária em um único script. Use-a quando precisar de lógica SQL reutilizável em uma consulta ad hoc ou script, sem registrar uma função permanente no catálogo do MaxCompute.
Para criar uma UDF persistente que todas as consultas do projeto possam chamar, use CREATE SQL FUNCTION.
Limitações
Modo script obrigatório. Defina as UDFs no modo de script SQL. Definir uma UDF no modo de edição SQL comum gera erro.
Escopo restrito ao script de definição. O sistema de metadados do MaxCompute não armazena UDFs SQL temporárias. Elas não aparecem na lista de funções e outros ambientes de consulta não podem chamá-las.
Tipos de dados dos parâmetros de entrada compatíveis com o MaxCompute. Consulte a edição de tipos de dados do MaxCompute V2.0 para obter a lista completa. Ao chamar a UDF, os tipos dos argumentos devem corresponder exatamente aos tipos declarados na definição.
Permissões. Criar, consultar, chamar ou remover uma UDF SQL exige permissões no nível de função na sua conta Alibaba Cloud. Consulte permissões do MaxCompute.
Sintaxe
function <function_name>(@<parameter_in1> <datatype>[, @<parameter_in2> <datatype>...])
[returns @<parameter_out> <datatype>]
as [begin]
<function_expression>
[end];
Parâmetros
|
Parâmetro |
Obrigatório |
Descrição |
|
|
Sim |
Nome da UDF. Deve ser exclusivo no projeto e não pode coincidir com o nome de uma função integrada. Cada nome só pode ser registrado uma vez. Execute LIST FUNCTIONS para verificar conflitos de nomes. |
|
|
Sim |
Parâmetros de entrada. Aceita tipos de dados padrão e tipos de função, incluindo funções anônimas. Consulte o exemplo de parâmetro de entrada do tipo função e o exemplo de função anônima. |
|
|
Sim |
Tipo de dados de cada parâmetro de entrada. Consulte a edição de tipos de dados do MaxCompute V2.0. |
|
|
Não |
Declaração do valor de retorno. O valor de retorno é uma variável. Se omitido, o sistema retorna o valor de |
|
|
Sim |
Nome da variável de saída. |
|
|
Sim |
Expressão SQL que implementa a lógica da função. |
Exemplos
Definir uma função que soma 1 a um número inteiro
function my_add(@a BIGINT) as @a + 1;
Instruções relacionadas
CREATE SQL FUNCTION: crie uma UDF SQL permanente armazenada no sistema de metadados do MaxCompute, acessível a todas as consultas do projeto.
DESC FUNCTION: retorna detalhes sobre uma UDF armazenada permanentemente, como nome, proprietário, hora de criação, nome da classe e lista de recursos. Esta instrução não permite consultar UDFs SQL temporárias.
DROP FUNCTION: remove uma UDF existente de um projeto MaxCompute.
SELECT FUNCTION: selecione uma UDF SQL. Uma UDF SQL temporária só pode ser chamada no script onde foi definida.
LIST FUNCTIONS: lista todas as funções registradas em um projeto.