OPEN (Script Snowflake)

Abre um cursor.

Para obter mais informações sobre os cursores, consulte Como trabalhar com cursores.

Nota

Este constructo do Script Snowflake só é válido dentro de um bloco do Script Snowflake.

Consulte também:

DECLARE, FETCH, CLOSE

Sintaxe

OPEN <cursor_name> [ USING (bind_variable_1 [, bind_variable_2 ...] ) ] ;
Copy

Onde:

cursor_name

O nome do cursor.

bind_variable

Uma variável de vinculação detém um valor a ser usado na definição da consulta do cursor (por exemplo, em uma cláusula WHERE).

Um exemplo de vinculação está incluído nos exemplos mais adiante nesta seção.

Notas de uso

  • O conjunto de resultados de uma consulta pode ser pensado como um conjunto de linhas. Internamente, abrir um cursor executa a consulta, lê as linhas e posiciona um ponteiro interno na primeira das linhas.

  • Como em qualquer consulta SQL, se a definição da consulta não contiver um ORDERBY no nível mais externo, o conjunto de resultados não terá uma ordem definida. Quando o conjunto de resultados para o cursor é criado, sua ordem persiste até que o cursor seja fechado. No entanto, a nova instrução ou a reabertura do cursor pode produzir as linhas em uma ordem diferente.

  • Da mesma forma, se um cursor é fechado, e então a(s) tabela(s) subjacente(s) é(são) atualizada(s) antes de ser reaberta(s), o conjunto de resultados também pode mudar.

Exemplos

DECLARE
    c1 CURSOR FOR SELECT price FROM invoices;
BEGIN
    OPEN c1;
    ...
Copy

O seguinte mostra como vincular uma variável ao abrir um cursor:

DECLARE
    price_to_search_for FLOAT;
    price_count INTEGER;
    c2 CURSOR FOR SELECT COUNT(*) FROM invoices WHERE price = ?;
BEGIN
    price_to_search_for := 11.11;
    OPEN c2 USING (price_to_search_for);
Copy

Para um exemplo mais completo da utilização de um cursor, consulte o exemplo introdutório do cursor.