1

我在单个 SELECT 中使用了许多不同的视图和 plpgsql 函数/聚合。当我在某些数据集上运行此 SELECT 时,出现division by zero错误。不幸的是,我没有得到任何被零除的细节。

有没有好方法来查明问题发生的确切位置?

4

2 回答 2

2

在 psql 中运行相同的代码将产生更多有用的信息,例如:

ERROR:  division by zero
CONTEXT:  PL/pgSQL function "mean_estimator_sfunc" line 10 during statement block local variable initialization
于 2013-03-08T14:34:19.403 回答
0

发布您的功能。这是 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;
/
于 2013-03-08T14:49:10.037 回答