我们如何处理 bigquery 过程中的异常?
Posted
技术标签:
【中文标题】我们如何处理 bigquery 过程中的异常?【英文标题】:how we can handle exceptions in procedures in bigquery? 【发布时间】:2019-12-15 08:38:30 【问题描述】:在许多 RDBMS 数据库中,都有一种机制来处理存储过程和函数中的异常。 bigquery 有什么方法可以处理运行时异常吗?喜欢no data found
或subscript beyond count
?
【问题讨论】:
【参考方案1】:BigQuery 尚未对其进行记录,但您可以通过创建异常处理子句来处理 BigQuery 中的任何类型的异常,如下例所述:
BEGIN
SELECT 1/0;
EXCEPTION WHEN ERROR THEN
SELECT @@error.message, @@error.statement_text;
END;
在上面的示例中,只要在其上方的 BEGIN 块中发生异常,就会进入 EXCEPTION 块。在异常块中,@@error.message 计算为描述错误的字符串,@@error.statement_text 是导致错误的语句的文本。
请注意,由于尚未正式记录此功能,因此语法仍有可能更改。
【讨论】:
【参考方案2】:我不知道 BigQuery 中有任何异常处理。无论如何,如果您关心的是处理运行时异常,您应该能够通过 SAFE 方法来做到这一点。
例如,如果 SUBSTR 函数产生错误,以下代码将返回 Null。
SELECT SAFE.SUBSTR('bar', 0, 2) AS safe_output;
您可以在以下link 找到更多信息,如果我正确理解您的需求,这应该涵盖您的用例。
【讨论】:
以上是关于我们如何处理 bigquery 过程中的异常?的主要内容,如果未能解决你的问题,请参考以下文章
如何处理 for 循环中的异常以使用存储过程插入行?甲骨文 PLSQL