Исключения PL / SQL при обновлении / удалении несуществующей строки

В настоящее время я изучаю PL / SQL и в настоящее время работаю с процедурами и исключениями, используя схему Oracle HR.

Вот моя простая процедура.

create or replace
PROCEDURE DEL_JOB
(p_jobid jobs.job_id%TYPE)
AS 
sqle NUMBER; 
sqlm VARCHAR2(300);
BEGIN
DELETE FROM JOBS 
WHERE JOB_ID = UPPER(p_jobid);
IF SQL%NOTFOUND THEN
  DBMS_OUTPUT.PUT_LINE('No such record');
END IF;
EXCEPTION
 WHEN OTHERS THEN
  sqle := SQLCODE;
  sqlm := SQLERRM;
  DBMS_OUTPUT.PUT_LINE('There is no job with this id that could be deleted');
  DBMS_OUTPUT.PUT_LINE('Error Code ='||sqle||' Error message =' ||sqlm);
END;

Когда я выполняю эту процедуру, вывод

  No such record
  PL/SQL procedure successfully complete. 

Однако, согласно Oracle PDF, он должен вызвать исключение, и я действительно должен получить сообщение, которое ввел в исключение.

То же самое произошло с обновлением несуществующей записи. Пожалуйста, порекомендуйте. Спасибо

12
задан wweicker 12 January 2012 в 20:50
поделиться