我在单个 SELECT 中使用了许多不同的视图和 plpgsql 函数/聚合。当我在某些数据集上运行此 SELECT 时,出现division by zero
错误。不幸的是,我没有得到任何被零除的细节。
有没有好方法来查明问题发生的确切位置?
我在单个 SELECT 中使用了许多不同的视图和 plpgsql 函数/聚合。当我在某些数据集上运行此 SELECT 时,出现division by zero
错误。不幸的是,我没有得到任何被零除的细节。
有没有好方法来查明问题发生的确切位置?
在 psql 中运行相同的代码将产生更多有用的信息,例如:
ERROR: division by zero
CONTEXT: PL/pgSQL function "mean_estimator_sfunc" line 10 during statement block local variable initialization
发布您的功能。这是 Oracle 文档中有关如何避免异常的一些很好的示例。仅使用 SQL 也可以做到这一点:
http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/errors.htm
DECLARE
stock_price NUMBER := 9.73;
net_earnings NUMBER := 0;
pe_ratio NUMBER;
BEGIN
pe_ratio :=
CASE net_earnings
WHEN 0 THEN NULL
ELSE stock_price / net_earnings
end;
END;
/