如何在postgresql中调试“除以零”错误

时间:2013-03-08 14:21:00

标签: sql debugging postgresql

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

我是否有一个很好的方法来确定问题发生的确切位置?

2 个答案:

答案 0 :(得分:2)

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

ERROR:  division by zero
CONTEXT:  PL/pgSQL function "mean_estimator_sfunc" line 10 during statement block local variable initialization

答案 1 :(得分: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;
/