Snowflake Scripting: 전역 변수 변경 사항(보류 중)

주의

이 동작 변경 사항은 2025_01 번들에 있습니다.

번들의 현재 상태는 번들 기록 섹션을 참조하십시오.

이 동작 변경 번들을 활성화하면 DML 명령에 대한 Snowflake Scripting 전역 변수가 다르게 동작합니다. 이러한 변수는 DML 명령의 영향을 받는 행 수 확인하기 에 설명되어 있습니다.

DML 문이 아닌 문이 Snowflake Scripting 블록 또는 저장 프로시저의 마지막 DML 문 뒤에 실행되는 경우 이러한 변수는 다음과 같이 작동합니다.

변경 전:

변수는 마지막 DML 문자에 의해 설정된 값을 반환합니다.

  • SQLROWCOUNT - 마지막 DML 문의 영향을 받는 행 수입니다.

  • SQLFOUND - 마지막 DML 문자를 기준으로 TRUE 또는 FALSE 입니다.

  • SQLNOTFOUND - 마지막 DML 문자를 기준으로 TRUE 또는 FALSE 입니다.

변경 후:

변수는 NULL 을 반환합니다.

예를 들어 다음 Snowflake Scripting 익명 블록은 변경 전과 후에 서로 다른 값을 반환합니다.

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
변경 전 반환 값입니다.:
+-----------------+
| anonymous block |
|-----------------|
|               1 |
+-----------------+
변경 후 반환 값입니다.:
+-----------------+
| anonymous block |
|-----------------|
|            NULL |
+-----------------+

변경 후 이전 동작을 유지하려면 DML 문자가 아닌 후속 문 앞에 새 변수에 Snowflake Scripting 전역 변수 값을 저장한 다음 새 변수의 값을 반환합니다. 예:

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

참조: 1850