DECLARE(Snowflake Scripting)

하나 이상의 Snowflake Scripting 변수, 커서, RESULTSET 또는 예외를 선언합니다.

변수, 커서, RESULTSET, 예외에 대한 자세한 내용은 다음을 참조하십시오.

참고 항목:

LET

구문

DECLARE
  { <variable_declaration> | <cursor_declaration> | <resultset_declaration> | <exception_declaration> };
  [{ <variable_declaration> | <cursor_declaration> | <resultset_declaration> | <exception_declaration> }; ... ]
Copy

각 선언 타입에 대한 구문은 아래에서 더 자세히 설명합니다.

변수 선언 구문

다음 구문을 사용하여 변수를 선언합니다.

<variable_declaration> ::=
  <variable_name> [<type>] [ { DEFAULT | := } <expression>]
Copy

여기서:

variable_name

변수의 이름입니다. 이름은 오브젝트 식별자 에 대한 명명 규칙을 따라야 합니다.

type

SQL 데이터 타입.

DEFAULT expression 또는 . := expression

변수에 expression 의 값을 할당합니다. typeexpression 이 둘 다 지정된 경우 식은 지정된 type 과 일치하거나 암시적으로 캐스팅 될 수 있는 데이터 타입으로 평가되어야 합니다.

예:

profit NUMBER(38, 2) := 0;
Copy

전체 예는 섹션을 참조하십시오.

변수에 대한 자세한 내용은 변수 작업하기 섹션을 참조하십시오.

커서 선언 구문

다음 구문을 사용하여 커서를 선언합니다.

<cursor_declaration> ::=
  <cursor_name> CURSOR FOR <query>
Copy

여기서:

cursor_name

커서에 부여할 이름입니다. 이것은 이 블록에서 아직 사용되지 않은 유효한 Snowflake 식별자 일 수 있습니다. 식별자는 FETCH 와 같은 다른 커서 관련 명령에서 사용됩니다.

query

커서가 반복되는 결과 세트를 정의하는 쿼리입니다.

이것은 거의 모든 유효한 SELECT 문일 수 있습니다.

예:

c1 CURSOR FOR SELECT id, price FROM invoices;
Copy

커서에 대한 자세한 내용(전체 예 포함)은 커서 작업하기 섹션을 참조하십시오.

RESULTSET 선언 구문

다음 구문을 사용하여 RESULTSET를 선언합니다.

<resultset_name> RESULTSET [ { DEFAULT | := } ( <query> ) ] ;
Copy

여기서:

resultset_name

RESULTSET에 부여할 이름입니다.

이름은 현재 범위 내에서 고유해야 합니다.

이름은 오브젝트 식별자 에 대한 명명 규칙을 따라야 합니다.

DEFAULT query 또는 . := query

query 값을 RESULTSET에 할당합니다.

RESULTSET에 대한 자세한 내용(전체 예 포함)은 RESULTSET 작업하기 섹션을 참조하십시오.

예외 선언 구문

다음 구문을 사용하여 예외를 선언합니다.

<exception_name> EXCEPTION [ ( <exception_number> , '<exception_message>' ) ] ;
Copy

여기서:

exception_name

예외에 부여할 이름입니다.

exception_number

예외를 고유하게 식별하는 번호입니다. 숫자는 -20000에서 -20999 사이의 정수여야 합니다. 이 번호는 동시에 존재하는 다른 예외에 사용되어서는 안 됩니다.

기본값: -20000

exception_message

예외를 설명하는 메시지입니다. 메시지에는 큰따옴표 문자가 포함되어서는 안 됩니다.

기본값: 빈 문자열입니다.

예:

exception_could_not_create_table EXCEPTION (-20003, 'ERROR: Could not create table.');
Copy

예외에 대한 자세한 내용(전체 예 포함)은 예외 처리하기 섹션을 참조하십시오.

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;
Copy

참고: SnowSQL 또는 Classic Console 을 사용하는 경우 대신 다음 예를 사용하십시오(SnowSQL 및 Classic Console 에서 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;
$$
;
Copy