繁体   English   中英

将存储过程的结果存储在 Google Big Query 表中

[英]Storing results of a stored procedure in a Google Big Query table

这是我之前提出的问题的链接 接受的答案完美无缺。

但是这个存储过程处理 2 个语句,运行这个过程后我必须单击第二个语句的查看结果才能在 Google Big Query 中查看结果。 有没有一种方法可以使用 Google Big Query 中的“查询设置”自动将结果保存在某个表中,并指定我要存储结果的表的名称?

您不能为脚本(或调用过程)设置目标表,相反,您可以将SELECT语句转换为CREATE TABLE ... AS SELECT ,例如:

SELECT 1 x;

=>

CREATE TABLE myDataset.myTable
AS SELECT 1 x;

您可以为您的过程定义一个字符串参数。 然后在动态查询中使用这个参数将结果写入表中。

CREATE OR REPLACE PROCEDURE `my_dataset.my_procedure`(destination_table STRING)
BEGIN

CREATE TEMP TABLE tmp AS SELECT 1 x;

EXECUTE IMMEDIATE (
    FORMAT("CREATE OR REPLACE TABLE `%s` AS SELECT * FROM tmp", destination_table));

END

现在您可以提供表名并调用此过程将结果写入表中。

CALL `my_dataset.my_procedure`("my_dataset.my_table");
SELECT * FROM `my_dataset.my_table` 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM