簡體   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