执行 SQL 语句¶
Snowflake CLI 允许您使用 snow sql 命令执行 SQL 查询、临时查询或包含 SQL 查询的文件。
要执行临时查询,请运行类似下面的命令:
snow sql -q "SELECT * FROM FOO"
要执行包含 SQL 查询的文件,请运行类似下面的命令:
snow sql -f my_query.sql
snow sql
命令可以执行多个语句,在这种情况下,将返回多个结果集。例如,运行:
snow sql -q "select 'a', 'b'; select 'c', 'd';"
结果为以下输出:
select 'a', 'b';
+-----------+
| 'A' | 'B' |
|-----+-----|
| a | b |
+-----------+
select 'c', 'd';
+-----------+
| 'C' | 'D' |
|-----+-----|
| c | d |
+-----------+
有关更多信息,请参阅 snow sql 命令。
为 SQL 模板使用变量¶
在某些情况下,您可能需要根据上下文更改 SQL 查询。snow sql
命令支持客户端变量替换,允许您在提交查询之前在命令中使用在本地解析的变量。 SQL 字符串中的变量采用格式 &{ variable_name }
,而 -D
(或 --variable
)选项指定变量的值。
例如,要使用客户端变量指定数据库,可以输入类似下面的命令:
snow sql -q "select * from &{ database }.logs" -D "database=dev"
执行时,该命令将替换 &{ database }
变量中的值 dev
以创建 dev.logs
文件名,然后将 select * from dev.logs
SQL 查询发送到 Snowflake 进行处理。
您还可以指定多个变量输入,如下所示:
snow sql \
-q "grant usage on database &{ database } to &{ role }" \
-D "database=dev" \
-D "role=eng_rl"
此示例生成以下 SQL 查询:
grant usage on database dev to eng_rl