Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:
Databricks SQL
Databricks Runtime 16.3 e superior
Implementa um bloco de Script SQL que pode conter uma sequência de instruções SQL, instruções de controle de fluxo, declarações de variáveis locais e manipuladores de exceções.
Observação
Ao invocar uma instrução composta de um bloco de anotações, ela deve ser a única instrução na célula.
Sintaxe
[ label : ]
BEGIN
[ { declare_variable | declare_condition } ; [...] ]
[ declare_handler ; [...] ]
[ SQL_statement ; [...] ]
END [ label ]
declare_variable
DECLARE variable_name [, ...] datatype [ DEFAULT default_expr ]
declare_condition
DECLARE condition_name CONDITION [ FOR SQLSTATE [ VALUE ] sqlstate ]
declare_handler
DECLARE handler_type HANDLER FOR condition_values handler_action
handler_type
EXIT
condition_values
{ { SQLSTATE [ VALUE ] sqlstate | condition_name } [, ...] |
{ SQLEXCEPTION | NOT FOUND } [, ...] }
Antes do Databricks Runtime 17.2, você só podia declarar uma variável de cada vez.
Parâmetros
-
Um identificador opcional é usado para qualificar variáveis definidas dentro do composto e para sair do composto. Ambas as ocorrências de rótulo devem corresponder, e o rótulo
ENDsó pode ser especificado selabel:for também especificado.do rótulo não deve ser especificado para uma estrutura composta de nível superior.
NOT ATOMICEspecifica que, se uma instrução SQL dentro do composto falhar, as instruções SQL anteriores não serão revertidas. Este é o comportamento padrão e único.
declare_variableUma declaração de variável local para uma ou mais variáveis
-
Um nome para a variável. O nome não deve ser qualificado e deve ser exclusivo dentro da declaração composta.
data_typeQualquer tipo de dados suportado. Se o data_type for omitido, deverá especificar DEFAULT, e o tipo será derivado da expressão padrão.
{ DEFAULT | = } default_expressionDefine o valor inicial da variável após a declaração. default_expression deve ser convertível para data_type. Se nenhum padrão for especificado, a variável será inicializada com NULL.
-
Declare_conditionUma declaração de condição local
-
O nome não qualificado da condição está delimitado pela instrução composta.
sqlstateUm literal
STRINGde 5 caracteres alfanuméricos (sem distinção entre maiúsculas e minúsculas) que consiste em A-Z e 0..9. O SQLSTATE não deve começar com '00', '01' ou 'XX'. Qualquer SQLSTATE começando com '02' será capturado também pela exceção predefinida NOT FOUND. Se não for especificado, o SQLSTATE será '45000'.
-
declare_handlerUma declaração para um manipulador de erros.
handler_typeEXITDesigna o manipulador para sair da instrução composta depois que a condição é tratada.
condition_valuesEspecifica a quais sqlstates ou condições o manipulador se aplica. Os valores de condição devem ser exclusivos em todos os manipuladores dentro da instrução composta. Os valores de condição específica têm precedência sobre
SQLEXCEPTION.sqlstateUm literal de 5 caracteres
STRING,'A'-'Z'e'0'-'9'(sem distinção de maiúsculas e minúsculas).-
Uma condição definida dentro desse composto, uma instrução composta externa ou uma classe de erro definida pelo sistema.
SQLEXCEPTIONAplica-se a qualquer condição de erro voltada para o usuário.
NOT FOUNDAplica-se a qualquer condição de erro com uma classe SQLSTATE '02'.
handler_actionUma instrução SQL para executar quando qualquer um dos valores de condição ocorrer. Para adicionar várias instruções, use uma instrução composta aninhada.
SQL_statementUma instrução SQL, como DDL, DML, instrução de controle ou instrução composta. Qualquer instrução
SELECTouVALUESproduz um conjunto de resultados que o invocador pode consumir.
Exemplos
-- A compound statement with local variables, and exit hanlder and a nested compound.
> BEGIN
DECLARE a INT DEFAULT 1;
DECLARE b INT DEFAULT 5;
DECLARE EXIT HANDLER FOR DIVIDE_BY_ZERO
div0: BEGIN
VALUES (15);
END div0;
SET a = 10;
SET a = b / 0;
VALUES (a);
END;
15