Obecnie uczę się PL/SQL i obecnie pracuję z procedurami i wyjątkami korzystając ze schematu HR Oracle.Wyjątki PL/SQL dla aktualizacji/usunięcia nieistniejącego wiersza
Oto moja prosta procedura.
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;
Kiedy wykonać tę procedurę, wyjście jest
No such record
PL/SQL procedure successfully complete.
Jednak według Oracle PDF powinno wyjątek i powinien naprawdę się komunikat, że weszła w wyjątku.
To samo stało się z aktualizacją nieistniejącego rekordu. Proszę doradzić. Dzięki
dziękuję Chciałem tylko potwierdzić, że niczego nie brakuje. – MStp