DECLARE (Snowflakeスクリプト)¶
1つ以上のSnowflakeスクリプト変数、カーソル、 RESULTSETs、または例外を宣言します。
変数、カーソル、 RESULTSETs、および例外の詳細については、以下をご参照ください。
- こちらもご参照ください:
構文¶
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 | := } ( <query> ) ] ;
条件:
resultset_name
RESULTSET に付ける名前。
名前は、現在のスコープ内で一意である必要があります。
名前は、 オブジェクト識別子 の名前付け規則に従う必要があります。
DEFAULT query
または .:= query
query
の値を RESULTSET に割り当てます。
RESULTSETs (包括的な例を含む)の詳細については、 RESULTSETs の操作 をご参照ください。
例外宣言構文¶
次の構文を使用して、 例外を宣言 します。
<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.');
例外(包括的な例を含む)の詳細については、 処理の例外 をご参照ください。
例¶
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;注: SnowSQL または Classic Console を使用している場合は、代わりに次の例を使用します(SnowSQL および Classic Console でのSnowflakeスクリプトの使用 を参照)。
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; $$ ;