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 に答える