gpt4 book ai didi

sql - 调试 BigQuery 存储过程

转载 作者:行者123 更新时间:2023-12-04 08:31:43 25 4
gpt4 key购买 nike

有什么方法可以在 BigQuery 存储过程中使用打印语句?我有一个如下所示的存储过程,我想看看如何生成 SQL 语句来调试问题或任何其他更好的方法来调试正在生成什么存储过程等。

CREATE OR REPLACE PROCEDURE `myproject.TEST.check_duplicated_prc`(project_name STRING, data_set_name STRING, table_name STRING, date_id DATE)
BEGIN
DECLARE sql STRING;
set sql ='Select date,col1,col2,col3,count(1) from `'||project_name||'.'||data_set_name||'.'||table_name|| '` where date='||date_id ||' GROUP BY date,col1,col2,col3 HAVING COUNT(*)>1';
--EXECUTE IMMEDIATE (sql);
print(sql)
END;

最佳答案

有很多方法可以对存储过程进行调试/故障排除

最简单的方法之一 - 查看 SQL 语句是如何生成的 - 稍微调整你的存储过程,如下例所示

CREATE OR REPLACE PROCEDURE `myproject.TEST.check_duplicated_prc`(project_name STRING, data_set_name STRING, table_name STRING, date_id DATE, OUT sql STRING)
BEGIN
-- DECLARE sql STRING;
set sql ='Select date,col1,col2,col3,count(1) from `'||project_name||'.'||data_set_name||'.'||table_name|| '` where date='||date_id ||' GROUP BY date,col1,col2,col3 HAVING COUNT(*)>1';
--EXECUTE IMMEDIATE (sql);
END;

然后,你可以在下面运行查看生成的SQL

DECLARE sql STRING;
CALL `myproject.TEST.check_duplicated_prc`('project_name', 'data_set_name', 'table_name', '2020-11-24', sql);
SELECT sql;

有输出

enter image description here

正如您在此处所见 - 您在此处缺少撇号 where date=2020-11-24 因此您可以修复存储过程

关于sql - 调试 BigQuery 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64989997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com