Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL Databricks Runtime 17.0 e acima
Unity Catalog somente
Cria um procedimento no Unity Catalog que usa ou modifica argumentos, executa um conjunto de instruções SQL e, opcionalmente, retorna um conjunto de resultados.
Além da invocação de parâmetros posicionais, pode-se também invocar procedimentos usando invocação de parâmetros nomeados.
Sintaxe
CREATE [OR REPLACE] PROCEDURE [IF NOT EXISTS]
procedure_name ( [ procedure_parameter [, ...] ] )
[ characteristic [...] ]
AS compound_statement
procedure_parameter
[ IN | OUT | INOUT ] parameter_name data_type
[ DEFAULT default_expression ] [ COMMENT parameter_comment ]
characteristic
{ LANGUAGE SQL |
SQL SECURITY INVOKER |
NOT DETERMINISTIC |
COMMENT procedure_comment |
DEFAULT COLLATION UTF8_BINARY |
MODIFIES SQL DATA }
Parâmetros
OU SUBSTITUIR
Se especificado, um procedimento com o mesmo nome é substituído. Não é possível substituir uma função existente por um procedimento. Não é possível especificar esse parâmetro com
IF NOT EXISTS.SE NÃO EXISTIR
Se especificado, cria o procedimento somente quando um procedimento com essa nota ainda não existe. Se existir um procedimento com o mesmo nome, a instrução será ignorada. Não é possível especificar esse parâmetro com
OR REPLACE.-
Um nome para o procedimento. Opcionalmente, você pode qualificar o nome do procedimento com um nome de esquema. Se o nome não for qualificado, o procedimento permanente será criado no esquema atual.
O nome do procedimento deve ser exclusivo para todas as rotinas (procedimentos e funções) no esquema.
procedure_parameter
Especifica um parâmetro do procedimento.
-
O nome do parâmetro deve ser exclusivo dentro do procedimento.
IN,INOUT ouOUT
Opcionalmente, descreve o modo do parâmetro.
EM
Define um parâmetro somente de entrada. Este é o padrão.
INOUT
Define um parâmetro que aceita um argumento input-output. Se o procedimento for concluído sem um erro não tratado, ele retornará o valor do parâmetro final como uma saída.
FORA
Define um parâmetro de saída. O parâmetro é inicializado para
NULLe, se o procedimento for concluído sem um erro não tratado, ele retornará o valor final do parâmetro como uma saída.
-
Qualquer tipo de dados suportado.
PADRÃO default_expression
Um padrão opcional a ser usado quando uma invocação de função não atribui um argumento ao parâmetro.
default_expressiondeve poder ser convertível paradata_type. A expressão não deve fazer referência a outro parâmetro ou conter uma subconsulta.Quando você especifica um padrão para um parâmetro, todos os parâmetros a seguir também devem ter um padrão.
DEFAULTnão é suportado paraOUTparâmetros.COMENTÁRIO comentário
Uma descrição opcional do parâmetro.
commenttem de ser umSTRINGliteral.
-
-
Uma instrução composta SQL (
BEGIN ... END) com a definição do procedimento SQL.Quando o procedimento é criado, a correção sintática é validada. O corpo do procedimento não é validado quanto à correção semântica até que o procedimento seja invocado.
característica
A característica
SQL SECURITY INVOKEReLANGUAGE SQLsão necessárias. Todos os outros são opcionais. Você pode especificar qualquer número de características em qualquer ordem, mas pode especificar cada cláusula apenas uma vez.LINGUAGEM SQL
A linguagem da implementação da função.
INVOCADOR DE SEGURANÇA SQL
Especifica que todas as instruções SQL no corpo do procedimento serão executadas sob a autoridade do usuário que invoca o procedimento.
Ao resolver relações e rotinas dentro do corpo do procedimento, o Azure Databricks usa o catálogo atual e o esquema atual no momento da invocação.
NÃO DETERMINÍSTICO
Um procedimento é assumido como não determinístico, o que significa que pode retornar resultados diferentes em cada invocação, mesmo quando é chamado com os mesmos argumentos.
COMENTÁRIO procedure_comment
Um comentário para o procedimento.
procedure_commentdeve serSTRINGliteral. A predefinição éNULL.AGRUPAMENTO PADRÃO UTF8_BINARY
Aplica-se a:
Databricks SQL
Databricks Runtime 17.1 e superiorForça a ordenação padrão do procedimento para
UTF8_BINARY. Esta cláusula é obrigatória se o esquema no qual o procedimento é criado tiver um agrupamento padrão diferente deUTF8_BINARY. O agrupamento padrão do procedimento é usado como o agrupamento padrão para parâmetros de procedimento e o agrupamento padrão para todos os literais de cadeia de caracteres e variáveis locais no corpo do procedimento.MODIFICA DADOS SQL
Presume-se que um procedimento modifique dados SQL.
Exemplos
-- Demonstrate INOUT and OUT parameter usage.
> CREATE OR REPLACE PROCEDURE add(x INT, y INT, OUT sum INT, INOUT total INT)
LANGUAGE SQL
SQL SECURITY INVOKER
COMMENT 'Add two numbers'
AS BEGIN
SET sum = x + y;
SET total = total + sum;
END;
> DECLARE sum INT;
> DECLARE total INT DEFAULT 0;
> CALL add(1, 2, sum, total);
> SELECT sum, total;
3 3
> CALL add(3, 4, sum, total);
7 10
-- The last executed query is the result set of a procedure
> CREATE PROCEDURE greeting(IN mode STRING COMMENT 'informal or formal')
LANGUAGE SQL
SQL SECURITY INVOKER
AS BEGIN
SELECT 'Hello!';
CASE mode WHEN 'informal' THEN SELECT 'Hi!';
WHEN 'formal' THEN SELECT 'Pleased to meet you.';
END CASE;
END;
> CALL greeting('informal');
Hi!
> CALL greeting('formal');
Pleased to meet you.
> CALL greeting('casual');
Hello!