Usos das variáveis em SQL¶
Nota
O suporte a variáveis requer a versão 1.1 da definição de projeto.
Também é possível usar arquivos de projeto para definir variáveis que outros comandos, como snow sql
, podem usar. A seção env
no arquivo de definição do projeto (normalmente, snowflake.yml
) permite que você defina variáveis como mostrado:
definition_version: 2
env:
database: "dev"
role: "eng_rl"
Após adicionar a seção env
ao arquivo de definição do projeto, é possível passar as variáveis ao comando snow sql
em vez de especificar a variável e o valor na linha de comando.
Em vez de especificar o banco de dados e a função na linha de comando com a opção --variable
, conforme mostrado:
snow sql \
-q "grant usage on database <% database %> to <% role %>" \
-D "database=dev" \
-D "role=eng_rl"
você pode especificar as variáveis definidas na seção env
conforme mostrado:
snow sql -q "grant usage on database <% ctx.env.database %> to <% ctx.env.role %>"
É possível incluir a seção env
além de quaisquer outras seções incluídas no arquivo de definição do projeto.
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"
Nota
Se o seu arquivo de definição de projeto atual usar definition_version: 1
, você deverá atualizá-lo para definition_version: 1.1
se quiser aproveitar o recurso de variáveis. Se você não alterar o valor, Snowflake CLI ignorará a seção env
, mas os outros tipos de projetos (snowpark
, neste exemplo) ainda funcionarão como esperado.
Você pode substituir qualquer variável definida no arquivo de definição de projeto snowflake.yml
definindo uma variável de ambiente shell com o mesmo nome (diferencia maiúsculas de minúsculas). Por exemplo, para substituir o valor definido database
no exemplo, você pode executar o seguinte comando shell:
export database="other"
Para obter mais informações sobre o uso de variáveis env
, consulte Armazenamento de variáveis no arquivo de definição de projeto snowflake.yml.