Snowflake Scripting: alterações das variáveis globais (pendente)

Atenção

Essa mudança de comportamento está no pacote 2025_01.

Para saber o status atual do pacote, consulte Histórico do pacote.

Quando esse pacote de mudança de comportamento está ativado, as variáveis globais do Snowflake Scripting para os comandos de DML se comportam de forma diferente. Essas variáveis estão descritas em Como determinar o número de linhas afetadas por comandos DML.

Quando uma instrução não DML é executada após a última instrução DML em um bloco do Snowflake Scripting ou procedimento armazenado, essas variáveis se comportam da seguinte forma:

Antes da mudança:

As variáveis retornam o valor definido pela última instrução DML:

  • SQLROWCOUNT - Número de linhas afetadas pela última instrução DML.

  • SQLFOUND - TRUE ou FALSE com base na última instrução DML.

  • SQLNOTFOUND - TRUE ou FALSE com base na última instrução DML.

Após a mudança:

As variáveis retornam NULL.

Por exemplo, o seguinte bloco anônimo do Snowflake Scripting retorna valores diferentes antes e depois da mudança:

EXECUTE IMMEDIATE
$$
BEGIN
  CREATE OR REPLACE TABLE test_snowflake_scripting_gv (i INT);
  INSERT INTO test_snowflake_scripting_gv VALUES (1);
  SELECT 1;
  RETURN SQLROWCOUNT;
END;
$$;
Copy
Valor retornado antes da mudança::
+-----------------+
| anonymous block |
|-----------------|
|               1 |
+-----------------+
Valor retornado após a mudança::
+-----------------+
| anonymous block |
|-----------------|
|            NULL |
+-----------------+

Para obter o comportamento anterior após a alteração, salve o valor da variável global do Snowflake Scripting em uma nova variável antes das instruções não DML subsequentes e, em seguida, retorne o valor da nova variável. Por exemplo:

EXECUTE IMMEDIATE
$$
BEGIN
  LET sql_row_count_var := 0;
  CREATE OR REPLACE TABLE test_snowflake_scripting_gv (i INT);
  INSERT INTO test_snowflake_scripting_gv VALUES (1);
  sql_row_count_var := SQLROWCOUNT;
  SELECT 1;
  RETURN sql_row_count_var;
END;
$$;
Copy

Ref: 1850