単一の 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;
/