これは私の手順です:私は、SQL * Plusを使用して、それを実行するとプロシージャで例外を発生させるには?
create or replace procedure p1(p_deptno in number)
is
cursor c is select * from emp where deptno=p_deptno;
i emp%rowtype;
begin
open c;
loop
fetch c into i;
exit when c%notfound;
dbms_output.put_line(i.ename);
end loop;
exception
when no_data_found then
dbms_output.put_line('Give proper deptno');
end p1;
/
、私はこれを取得:
SQL> execがP1(70)。
PL/SQL手続きが正常に完了しました。
しかし、デプトノ70は利用できません。例外は発生する必要がありますが、そうではありません。私は間違って何をしていますか?
'raise'多分? https://docs.oracle.com/database/121/LNPLS/errors.htm#LNPLS00705 –
実際には、プロシージャは機能し、例外をキャッチしてメッセージを書き込みます。 dbms_outputをアクティブ化しなかったためにメッセージが表示されない可能性があります。SET SERVEROUTPUT ONを入力してください。 – Nicola