DECLARE(Snowflake Scripting)¶
하나 이상의 Snowflake Scripting 변수, 커서, RESULTSET 또는 예외를 선언합니다.
변수, 커서, RESULTSET, 예외에 대한 자세한 내용은 다음을 참조하십시오.
- 참고 항목:
구문¶
DECLARE
{ <variable_declaration> | <cursor_declaration> | <resultset_declaration> | <exception_declaration> };
[{ <variable_declaration> | <cursor_declaration> | <resultset_declaration> | <exception_declaration> }; ... ]
각 선언 타입에 대한 구문은 아래에서 더 자세히 설명합니다.
변수 선언 구문¶
다음 구문을 사용하여 변수를 선언합니다.
<variable_declaration> ::=
<variable_name> [<type>] [ { DEFAULT | := } <expression>]
여기서:
예:
profit NUMBER(38, 2) := 0;
전체 예는 예 섹션을 참조하십시오.
변수에 대한 자세한 내용은 변수 작업하기 섹션을 참조하십시오.
커서 선언 구문¶
다음 구문을 사용하여 커서를 선언합니다.
<cursor_declaration> ::=
<cursor_name> CURSOR FOR <query>
여기서:
cursor_name
커서에 부여할 이름입니다. 이것은 이 블록에서 아직 사용되지 않은 유효한 Snowflake 식별자 일 수 있습니다. 식별자는
FETCH
와 같은 다른 커서 관련 명령에서 사용됩니다.query
커서가 반복되는 결과 세트를 정의하는 쿼리입니다.
이것은 거의 모든 유효한
SELECT
문일 수 있습니다.
예:
c1 CURSOR FOR SELECT id, price FROM invoices;
커서에 대한 자세한 내용(전체 예 포함)은 커서 작업하기 섹션을 참조하십시오.
RESULTSET 선언 구문¶
다음 구문을 사용하여 RESULTSET를 선언합니다.
<resultset_name> RESULTSET [ { DEFAULT | := } [ ASYNC ] ( <query> ) ] ;
여기서:
resultset_name
RESULTSET에 부여할 이름입니다.
이름은 현재 범위 내에서 고유해야 합니다.
이름은 오브젝트 식별자 에 대한 명명 규칙을 따라야 합니다.
ASYNC
쿼리를 익명 하위 작업으로 실행합니다.
쿼리는 SELECT 문과 DML 문을 포함한 모든 유효한 SQL 문(예: INSERT 또는 UPDATE)이 될 수 있습니다.
이 키워드를 생략하면 저장 프로시저는 하위 작업을 순차적으로 실행하고, 각 하위 작업은 실행 중인 하위 작업이 완료될 때까지 기다렸다가 시작합니다.
이 키워드를 사용하여 여러 하위 작업을 동시에 실행하면 효율성을 높이고 전체 실행 시간을 줄일 수 있습니다.
AWAIT 및 CANCEL 문을 사용하여 RESULTSET 에 대한 비동기 하위 작업을 관리할 수 있습니다.
DEFAULT query
또는 .:= query
query
값을 RESULTSET에 할당합니다.
예:
res RESULTSET DEFAULT (SELECT col1 FROM mytable ORDER BY col1);
RESULTSET에 대한 자세한 내용(전체 예 포함)은 RESULTSET 작업하기 섹션을 참조하십시오.
예외 선언 구문¶
다음 구문을 사용하여 예외를 선언합니다.
<exception_name> EXCEPTION [ ( <exception_number> , '<exception_message>' ) ] ;
여기서:
exception_name
예외에 부여할 이름입니다.
exception_number
예외를 고유하게 식별하는 번호입니다. 숫자는 -20000에서 -20999 사이의 정수여야 합니다. 이 번호는 동시에 존재하는 다른 예외에 사용되어서는 안 됩니다.
기본값: -20000
exception_message
예외를 설명하는 메시지입니다. 메시지에는 큰따옴표 문자가 포함되어서는 안 됩니다.
기본값: 빈 문자열입니다.
예:
exception_could_not_create_table EXCEPTION (-20003, 'ERROR: Could not create table.');
예외에 대한 자세한 내용(전체 예 포함)은 예외 처리하기 섹션을 참조하십시오.
예¶
이 예제에서는 Snowflake Scripting 익명 블록에서 사용하기 위해 profit
변수를 선언합니다.
DECLARE
profit number(38, 2) DEFAULT 0.0;
BEGIN
LET cost number(38, 2) := 100.0;
LET revenue number(38, 2) DEFAULT 110.0;
profit := revenue - cost;
RETURN profit;
END;
참고: Python Connector 코드에서 SnowSQL, Classic Console 또는 execute_stream
또는 execute_string
메서드를 사용하는 경우 이 예제를 대신 사용하십시오(SnowSQL, Classic Console 및 Python Connector에서 Snowflake Scripting 사용하기 참조).
EXECUTE IMMEDIATE
$$
DECLARE
profit number(38, 2) DEFAULT 0.0;
BEGIN
LET cost number(38, 2) := 100.0;
LET revenue number(38, 2) DEFAULT 110.0;
profit := revenue - cost;
RETURN profit;
END;
$$
;
변수, 커서, RESULTSETs, 예외를 선언하는 더 많은 예제는 다음을 참조하십시오.