SELECT
がNO_DATA_FOUND
を生成したことをどのように確認できますか?NO_DATA_FOUND例外
例:
CREATE [..]
DECLARE
--
BEGIN
SELECT [...]; -- will this
SELECT [...]; -- or this to generate NO_DATA_FOUND ?
EXEPCTION
WHEN NO_DATA_FOUND THEN
[...]
END;
SELECT
がNO_DATA_FOUND
を生成したことをどのように確認できますか?NO_DATA_FOUND例外
例:
CREATE [..]
DECLARE
--
BEGIN
SELECT [...]; -- will this
SELECT [...]; -- or this to generate NO_DATA_FOUND ?
EXEPCTION
WHEN NO_DATA_FOUND THEN
[...]
END;
あなたはこれを行うことができます:
DECLARE
--
BEGIN
BEGIN
SELECT [...]; -- will this
EXCEPTION
WHEN NO_DATA_FOUND THEN
[...]
END;
BEGIN
SELECT [...]; -- or this to generate NO_DATA_FOUND ?
EXCEPTION
WHEN NO_DATA_FOUND THEN
[...]
END;
END;
または:
DECLARE
l_where_am_i number;
BEGIN
l_where_am_i := 1;
SELECT [...]; -- will this
l_where_am_i := 2;
SELECT [...]; -- or this to generate NO_DATA_FOUND ?
EXEPCTION
WHEN NO_DATA_FOUND THEN
CASE l_where_am_i
WHEN 1 THEN [...]
WHEN 2 THEN [...]
END CASE;
END;
別のオプションは、以下に示すように、それはに良いだろうけれども(dbms_utility.format_error_backtrace
を使用することですがそのデータをエラーロギングルーチンに送信します)。この関数は、エラーが発生した実際の行番号を返します。
CREATE [..]
DECLARE
--
BEGIN
SELECT [...]; -- will this
SELECT [...]; -- or this to generate NO_DATA_FOUND ?
EXEPCTION
WHEN NO_DATA_FOUND THEN
[...]
dbms_output.put_line(dbms_utility.format_error_backtrace());
END;
私はそのユーティリティについて知りませんでした。(単にdmbs_outputのput_lineを見逃してしまいました)。 – Harrison
すごい、これは – dynamic
なものがはるかに難しくなりますが –
を参照してください? – dynamic