DECLARE (Script Snowflake)¶
Declara uma ou mais variáveis, cursores, RESULTSETs ou exceções do Script Snowflake.
Para obter mais informações sobre variáveis, cursores, RESULTSETs e exceções, consulte:
- Consulte também:
Sintaxe¶
DECLARE
{ <variable_declaration> | <cursor_declaration> | <resultset_declaration> | <exception_declaration> };
[{ <variable_declaration> | <cursor_declaration> | <resultset_declaration> | <exception_declaration> }; ... ]
A sintaxe para cada tipo de instrução é descrita a seguir com mais detalhes.
Sintaxe da instrução variável¶
Use a seguinte sintaxe para declarar uma variável.
<variable_declaration> ::=
<variable_name> [<type>] [ { DEFAULT | := } <expression>]
Onde:
variable_name
O nome da variável. O nome deve seguir as regras de nomenclatura para Identificadores de objetos.
type
DEFAULT expression
ou .:= expression
Atribui o valor de
expression
à variável. Se ambostype
eexpression
forem especificados, a expressão deve ser avaliada como um tipo de dados que corresponda, ou pode ser implicitamente convertida notype
especificado.
Por exemplo:
profit NUMBER(38, 2) := 0;
Para um exemplo completo, consulte Exemplos.
Para obter mais informações sobre variáveis, consulte Como trabalhar com variáveis.
Sintaxe da instrução do cursor¶
Use a seguinte sintaxe para declarar um cursor.
<cursor_declaration> ::=
<cursor_name> CURSOR FOR <query>
Onde:
cursor_name
O nome a ser dado ao cursor. Ele pode ser qualquer identificador válido do Snowflake que ainda não esteja em uso neste bloco. O identificador é usado por outros comandos relacionados ao cursor, tais como
FETCH
.query
A consulta que define o conjunto de resultados sobre os quais o cursor faz iteração.
Isso pode ser quase qualquer instrução
SELECT
válida.
Por exemplo:
c1 CURSOR FOR SELECT id, price FROM invoices;
Para obter mais informações sobre cursores (incluindo exemplos completos), consulte Como trabalhar com cursores.
Sintaxe da instrução RESULTSET¶
Use a seguinte sintaxe para declarar um RESULTSET.
<resultset_name> RESULTSET [ { DEFAULT | := } ( <query> ) ] ;
Onde:
resultset_name
O nome a ser dado ao RESULTSET.
O nome deve ser único dentro do escopo atual.
O nome deve seguir as regras de nomenclatura para Identificadores de objetos.
DEFAULT query
ou .:= query
Atribui o valor de
query
a RESULTSET.
Para obter mais informações sobre RESULTSETs (incluindo exemplos completos), consulte Como trabalhar com RESULTSETs.
Sintaxe da instrução de exceção¶
Use a seguinte sintaxe para declarar uma exceção.
<exception_name> EXCEPTION [ ( <exception_number> , '<exception_message>' ) ] ;
Onde:
exception_name
O nome a ser dado à exceção.
exception_number
Um número para identificar a exceção de forma única. O número deve ser um número inteiro entre -20000 e -20999. O número não deve ser utilizado para nenhuma outra exceção que exista ao mesmo tempo.
Padrão: -20000
exception_message
Uma mensagem para descrever a exceção. A mensagem não deve conter nenhum caractere de aspas duplas.
Padrão: cadeia de caracteres vazia.
Por exemplo:
exception_could_not_create_table EXCEPTION (-20003, 'ERROR: Could not create table.');
Para obter mais informações sobre exceções (incluindo exemplos completos), consulte Tratamento de exceções.
Exemplos¶
DECLARE profit number(38, 2) DEFAULT 0.0; BEGIN LET cost number(38, 2) := 100.0; LET revenue number(38, 2) DEFAULT 110.0; profit := revenue - cost; RETURN profit; END;Nota: se você estiver usando SnowSQL ou Classic Console, use este exemplo (consulte Como usar o Script Snowflake no SnowSQL e na Classic Console):
EXECUTE IMMEDIATE $$ DECLARE profit number(38, 2) DEFAULT 0.0; BEGIN LET cost number(38, 2) := 100.0; LET revenue number(38, 2) DEFAULT 110.0; profit := revenue - cost; RETURN profit; END; $$ ;