SQL での変数を使用する

注釈

変数をサポートするには、プロジェクト定義バージョン1.1が必要です。

プロジェクトファイルを使用して、snow sql などの他のコマンドが使用できる変数を定義することもできます。プロジェクト定義ファイル(通常は snowflake.yml)の env セクションでは、次のように変数を定義できます。

definition_version: 2 env:  database: "dev"  role: "eng_rl" 
Copy

プロジェクト定義ファイルに env セクションを追加すると、コマンド行で変数と値を指定する代わりに、snow sql コマンドに変数を渡すことができます。

代わりに、次のように --variable オプションを使用してコマンドラインでデータベースとロールを指定します。

snow sql \ -q "grant usage on database <% database %> to <% role %>" \ -D "database=dev" \ -D "role=eng_rl" 
Copy

env セクションで定義された変数を次のように指定できます。

snow sql -q "grant usage on database <% ctx.env.database %> to <% ctx.env.role %>" 
Copy

プロジェクト定義ファイルに含める他のセクションに加えて、 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" 
Copy

注釈

現在のプロジェクト定義ファイルで definition_version: 1 が使用されている場合、変数機能を利用するには definition_version: 1.1 に更新する必要があります。値を変更しない場合、 Snowflake CLI は env セクションを無視しますが、他のタイプのプロジェクト(この例では snowpark)は期待通りに機能します。

snowflake.yml プロジェクト定義ファイルで定義された変数は、同じ名前のシェル環境変数(大文字と小文字を区別)を設定することで上書きできます。たとえば、例で定義されている database 値を上書きするには、次のシェルコマンドを実行します。

export database="other" 
Copy

env 変数の使用については、 snowflake.yml プロジェクト定義ファイルに変数を保存する をご参照ください。