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:

LET

Sintaxe

DECLARE
  { <variable_declaration> | <cursor_declaration> | <resultset_declaration> | <exception_declaration> };
  [{ <variable_declaration> | <cursor_declaration> | <resultset_declaration> | <exception_declaration> }; ... ]
Copy

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

Onde:

variable_name

O nome da variável. O nome deve seguir as regras de nomenclatura para Identificadores de objetos.

type

Um tipo de dados SQL.

DEFAULT expression ou . := expression

Atribui o valor de expression à variável. Se ambos type e expression forem especificados, a expressão deve ser avaliada como um tipo de dados que corresponda, ou pode ser implicitamente convertida no type especificado.

Por exemplo:

profit NUMBER(38, 2) := 0;
Copy

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

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

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> ) ] ;
Copy

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>' ) ] ;
Copy

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.');
Copy

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

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;
$$
;
Copy