SQL での変数を使用する¶
注釈
変数をサポートするには、プロジェクト定義バージョン1.1が必要です。
プロジェクトファイルを使用して、snow sql などの他のコマンドが使用できる変数を定義することもできます。プロジェクト定義ファイル(通常は snowflake.yml)の env セクションでは、次のように変数を定義できます。
definition_version: 2 env: database: "dev" role: "eng_rl" プロジェクト定義ファイルに env セクションを追加すると、コマンド行で変数と値を指定する代わりに、snow sql コマンドに変数を渡すことができます。
代わりに、次のように --variable オプションを使用してコマンドラインでデータベースとロールを指定します。
snow sql \ -q "grant usage on database <% database %> to <% role %>" \ -D "database=dev" \ -D "role=eng_rl" env セクションで定義された変数を次のように指定できます。
snow sql -q "grant usage on database <% ctx.env.database %> to <% ctx.env.role %>" プロジェクト定義ファイルに含める他のセクションに加えて、 env セクションを含めることができます。
definition_version: 2 entities: test_function: type: "function" stage: "dev_deployment" artifacts: ["app/"] handler: "functions.hello_function" signature: "" returns: string hello_procedure: type: "procedure" stage: "dev_deployment" artifacts: ["app/"] handler: "procedures.hello_procedure" signature: - name: "name" type: "string" returns: string env: database: "dev" role: "eng_rl" 注釈
現在のプロジェクト定義ファイルで definition_version: 1 が使用されている場合、変数機能を利用するには definition_version: 1.1 に更新する必要があります。値を変更しない場合、 Snowflake CLI は env セクションを無視しますが、他のタイプのプロジェクト(この例では snowpark)は期待通りに機能します。
snowflake.yml プロジェクト定義ファイルで定義された変数は、同じ名前のシェル環境変数(大文字と小文字を区別)を設定することで上書きできます。たとえば、例で定義されている database 値を上書きするには、次のシェルコマンドを実行します。
export database="other" env 変数の使用については、 snowflake.yml プロジェクト定義ファイルに変数を保存する をご参照ください。