BEGIN … END(Snowflake Scripting)¶
BEGIN
및 END
는 Snowflake Scripting 블록을 정의합니다.
블록에 대한 자세한 내용은 Snowflake Scripting의 블록 이해하기 섹션을 참조하십시오.
구문¶
BEGIN
<statement>;
[ <statement>; ... ]
[ EXCEPTION <exception_handler> ]
END;
여기서:
exception_handler
예외가 처리되는 방법을 지정합니다. 예외 처리하기 및 EXCEPTION(Snowflake Scripting) 섹션을 참조하십시오.
사용법 노트¶
END
키워드는 바로 뒤에 세미콜론이 와야 합니다. 또는 바로 뒤에 레이블이 오고 그 바로 뒤에 세미콜론이 와야 합니다.BEGIN
키워드는 바로 뒤에 세미콜론이 오면 안 됩니다.BEGIN
및END
는 일반적으로 루핑 또는 분기 구조와 같은 다른 언어 구문 내부 또는 저장 프로시저 내부에서 사용됩니다. 하지만 이것이 필수적인 것은 아닙니다. BEGIN/END 블록은 익명 블록 내부의 최상위 구문일 수 있습니다.블록은 중첩될 수 있습니다.
예¶
이것은 BEGIN
및 END
를 사용하여 관련 문을 그룹화하는 간단한 예입니다. 이 예에서는 두 개의 관련 테이블을 만듭니다.
EXECUTE IMMEDIATE $$
BEGIN
CREATE TABLE parent (ID INTEGER);
CREATE TABLE child (ID INTEGER, parent_ID INTEGER);
RETURN 'Completed';
END;
$$
;
다음 예도 비슷합니다. 문은 블록으로 그룹화되며 해당 블록 내의 트랜잭션 내부에도 있습니다.
EXECUTE IMMEDIATE $$
BEGIN
BEGIN TRANSACTION;
TRUNCATE TABLE child;
TRUNCATE TABLE parent;
COMMIT;
RETURN '';
END;
$$
;
이 예에서 문은 분기 구문 내부에 있습니다.
IF (both_rows_are_valid) THEN
BEGIN
BEGIN TRANSACTION;
INSERT INTO parent ...;
INSERT INTO child ...;
COMMIT;
END;
END IF;