【发布时间】:2020-10-29 17:19:59
【问题描述】:
我正在使用雪花 我希望在使用变量时向表中插入数据 使用变量的目的是当我可以在不进行查找和全部替换的情况下更改它
CREATE OR REPLACE TABLE DB1.PUBLIC.HUMANS (
HUMAN VARCHAR(32)
)
;
以下作品
INSERT INTO DB1.PUBLIC.HUMANS
SELECT 'SUCESS';
以下不起作用
SET EXPORT_TABLE = 'DB1.PUBLIC.HUMANS';
INSERT INTO TABLE($EXPORT_TABLE)
SELECT 'FAILURE';
不管怎样,这行得通。
SELECT * FROM TABLE($EXPORT_TABLE);
有没有办法插入到由表文字定义的表中?
参考文档:
https://docs.snowflake.com/en/sql-reference/literals-table.html https://docs.snowflake.com/en/sql-reference/sql/insert.html
================================================ ======= 更新: 由 cmets 找到的答案如下。 感谢 Biraja Mohanty 和 Greg Pavlik
要完成这项工作,必须包装 IDENTIFIER()。
INSERT INTO IDENTIFIER($EXPORT_TABLE);
https://docs.snowflake.com/en/sql-reference/session-variables.html
【问题讨论】:
-
要添加到 Biraja Mohanty 共享的内容,table() 对 select 有效但对 insert 无效的原因是因为 TABLE() 是一个返回表的函数。如果您将表的名称作为其唯一参数传递,则 TABLE 函数将返回该表中的行。
-
啊,这是一个很好的愿景。谢谢@Greg Pavilk
标签: snowflake-cloud-data-platform