■ はじめに
EXECUTE IMMEDIATE文についてメモしておく。
目次
【1】EXECUTE IMMEDIATE 1)使いどころ 【2】サンプル 【3】その他のTips 1)二重ドル記号($$)
【1】EXECUTE IMMEDIATE
* 指定されたSQL文の文字列を即時実行する
https://docs.snowflake.com/ja/sql-reference/sql/execute-immediate.html
-- execute immediate '<実行したいSQL文>'; execute immediate 'SELECT PI()';
1)使いどころ
* 一時的にストアドを実行したい場合 (まずは簡単な動きをみたいなどにも使える) => 実際に、過去データの取り込み・アンロードするために使用した => ストアドだと、不要になったら、drop procedureしなくてはならなく 間違って別のプロシージャを削除しちゃうっとかそんなことがなくなる
【2】サンプル
-- サンプルで使用している「$$」については、 -- 後述「【3】その他のTips」の「1)二重ドル記号($$)」を参照のこと execute immediate $$ declare result varchar default 'Hello world!'; begin return result; end; $$ ; -- 出力結果 -- Hello world!
【3】その他のTips
1)二重ドル記号($$)
https://docs.snowflake.com/ja/sql-reference/data-types-text.html#dollar-quoted-string-constants
より抜粋 ~~~~~~~~~~~~~~~~~~~~ ドル引用符で囲まれた文字列定数には、 引用符、バックスラッシュ、改行、およびその他の特殊文字(二重ドル記号を除く)を エスケープせずに含めることができます。 ドル引用符で囲まれた文字列定数の内容は、常に文字通りに解釈されます。 ~~~~~~~~~~~~~~~~~~~~
例
https://docs.snowflake.com/ja/sql-reference/sql/execute-immediate.html#basic-examples
-- より抜粋 set stmt = $$ select pi(); $$ ; execute immediate $stmt; +-------------+ | PI() | |-------------| | 3.141592654 | +-------------+
関連記事
Snowflake ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/02/130111
Snowflake ~ 入門編 / Hello world ~
https://dk521123.hatenablog.com/entry/2021/11/22/212520
【Snowflake】ストアド ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/12/11/202904
【Snowflake】ストアド ~ 基本編 / ループ ~
https://dk521123.hatenablog.com/entry/2022/12/16/143349
【Snowflake】ストアド ~ 例外 / EXCEPTION ~
https://dk521123.hatenablog.com/entry/2022/12/23/223345
【Snowflake】ストアド ~ デバッグログについて ~
https://dk521123.hatenablog.com/entry/2022/12/18/121334
Snowflake ~ 基本編 / ステージ ~
https://dk521123.hatenablog.com/entry/2022/09/01/220643
Snowflake ~ 日時関連 ~
https://dk521123.hatenablog.com/entry/2022/06/17/113003
Snowflake ~ 日時関連 / 日時取得関数 ~
https://dk521123.hatenablog.com/entry/2022/09/02/092144
Snowflake ~ Removeコマンド ~
https://dk521123.hatenablog.com/entry/2022/06/20/095659
Snowflake ~ ストレージ統合 ~
https://dk521123.hatenablog.com/entry/2022/06/29/221037
Snowflake ~ クエリの中断 ~
https://dk521123.hatenablog.com/entry/2022/12/09/152837
ストアド ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2010/08/06/112528