EXECUTE IMMEDIATE¶
SQL ステートメントまたは Snowflakeスクリプトのステートメント を含む文字列を実行します。
EXECUTEIMMEDIATE を使用して次を実行できます。
Snowflake Scriptingブロックでは、 SQL ステートメントの一部がランタイムまでわからない動的 SQL を実行します。例については、 Snowflake Scriptingブロック内での動的 SQL の実行 をご参照ください。
セッション変数に SQL ステートメントを設定し、セッション変数を参照して SQL ステートメントを実行します。例については、 ステートメントへのセッション変数の設定と実行 をご参照ください。
If you are using SnowSQL or Snowsight, run a Snowflake Scripting anonymous block. For an example, see Running an anonymous block in SnowSQL or Snowsight.
構文¶
必須パラメーター¶
オプションのパラメーター¶
USING ( bind_variable [ , bind_variable ... ] )カーソルのクエリ定義(例: WHERE 句内)で使用される値を保持する1つ以上のバインド変数を指定します。
戻り値¶
EXECUTE IMMEDIATE は、実行されたステートメントの結果を返します。たとえば、文字列または変数に SELECT ステートメントが含まれている場合は、 SELECT ステートメントの結果セットが返されます。
使用上の注意¶
string_literal、variable、またはsession_variableには、ステートメントを1つだけ含める必要があります。(ブロック は、ブロックの本文に複数のステートメントが含まれている場合でも、1つのステートメントと見なされます。)session_variableの前には、ドル記号($)を付ける必要があります。ローカルの
variableの前に、ドル記号($)を付けることは できません。
例¶
以下は、 EXECUTE IMMEDIATE コマンドを使用した例です。
Snowflake Scriptingブロック内での動的 SQL の実行¶
以下の例では、Snowflake Scriptingブロック内で動的 SQL を実行します。
変数を含むステートメントの実行¶
この例では、2つのローカル変数で定義されているステートメントを Snowflake Scriptingストアドプロシージャ で実行します。この例は、 EXECUTE IMMEDIATE が文字列リテラルだけでなく、文字列(VARCHAR)に評価される式でも機能することも示しています。
Note: If you use Snowflake CLI, SnowSQL, the Classic Console, or the
execute_stream or execute_string method in Python Connector
code, use this example instead (see Using Snowflake Scripting in Snowflake CLI, SnowSQL, and Python Connector):
ストアドプロシージャを呼び出します。
バインド変数を含むステートメントの実行¶
この例では、 EXECUTE IMMEDIATE を使用して、Snowflake Scriptingストアドプロシージャの USING パラメーターにバインド変数を含む SELECT ステートメントを実行します。まず、テーブルを作成してデータを挿入します。
ストアドプロシージャを作成します。
Note: If you use Snowflake CLI, SnowSQL, the Classic Console, or the
execute_stream or execute_string method in Python Connector
code, use this example instead (see Using Snowflake Scripting in Snowflake CLI, SnowSQL, and Python Connector):
ストアドプロシージャを呼び出します。
ステートメントへのセッション変数の設定と実行¶
この例では、セッション変数で定義されたステートメントを実行します。
Running an anonymous block in SnowSQL or Snowsight¶
When you run a Snowflake Scripting anonymous block in SnowSQL or Snowsight, you must specify the block as a string literal (delimited by single quotes or double dollar signs), and you must pass the block to the EXECUTE IMMEDIATE command. For more information, see Using Snowflake Scripting in Snowflake CLI, SnowSQL, and Python Connector.
この例では、 EXECUTE IMMEDIATE コマンドに渡された匿名ブロックを実行します。