Google bigquery 为什么';如果查询使用变量,是否允许设置目标表?

Google bigquery 为什么';如果查询使用变量,是否允许设置目标表?,google-bigquery,Google Bigquery,在BigQuery中,我可以组合查询,然后在“更多”>“查询设置”下设置目标表。这与没有变量的查询的预期效果一样,例如: SELECT * FROM foo.bar WHERE PARSE_TIMESTAMP("%a, %d %b %Y %X %z", date_created) > '2020-01-01 00:00:00'; DECLARE date_format STRING DEFAULT "%a, %d %b %Y %X %z"; SELECT * FROM foo.bar

在BigQuery中,我可以组合查询,然后在“更多”>“查询设置”下设置目标表。这与没有变量的查询的预期效果一样,例如:

SELECT * FROM foo.bar WHERE PARSE_TIMESTAMP("%a, %d %b %Y %X %z", date_created) > '2020-01-01 00:00:00';
DECLARE date_format STRING DEFAULT "%a, %d %b %Y %X %z";

SELECT * FROM foo.bar WHERE PARSE_TIMESTAMP(date_format, date_created) > '2020-01-01 00:00:00';
但是,当我尝试用变量替换格式化字符串时,设置目标表的选项突然在“更多”>“查询设置”下不存在。例如:

SELECT * FROM foo.bar WHERE PARSE_TIMESTAMP("%a, %d %b %Y %X %z", date_created) > '2020-01-01 00:00:00';
DECLARE date_format STRING DEFAULT "%a, %d %b %Y %X %z";

SELECT * FROM foo.bar WHERE PARSE_TIMESTAMP(date_format, date_created) > '2020-01-01 00:00:00';
此外,即使在尝试安排第二个查询时,我也没有设置目标表的选项


这是预期的行为吗?它在任何地方都有记录吗?我一直找不到解释。

这不是因为使用了参数本身! 而是脚本的局限性

所以,是的,这是预期的-当您使用脚本时,您不能使用目的地,否则您将得到错误


如果您需要将结果放入某个表中,只需在脚本中使用INSERT into或任何其他相关的DML/DDL即可

谢谢您的解释,但这是否有文档记录?我在文档中没有看到任何地方提到它。为什么在使用脚本时不能设置目标?我还没有找到特定的GCP文档说明在脚本时不能设置目标表。但是,您可能会发现这个功能请求(尚未解决)很有趣,它请求在创建脚本时设置目标表的权限: