Snowflake Scripting: 전역 변수 변경 사항(보류 중)¶
이 동작 변경 번들을 활성화하면 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;
$$;
- 변경 전 반환 값입니다.:
+-----------------+ | 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;
$$;
참조: 1850