Documente Academic
Documente Profesional
Documente Cultură
2022
SGBD Oracle
LIMBAJUL PL/SQL
Tratarea excepţiilor
BUCUREŞTI
2022-2023
Tipuri de erori
Erori la compilare
detectate de motorul PL/SQL
nu pot fi tratate deoarece programul nu a fost încă executat
utilizatorul trebuie să corecteze erorile și să execute din nou
programul
Erori la execuție
denumite excepții
pot apărea atunci când nu este respectată o regulă a SGBD Oracle
sau dacă este încălcată o limită a sistemului de operare
pot fi independente de structura bazei de date
pot să apară ca urmare a nerespectării unor restricţii de integritate
în program trebuie prevăzută apariția unei astfel de erori și
specificat modul concret de tratare a acesteia
2
1
04.11.2022
non-predefinite
au cod de eroare (utilizatorul trebuie să le asocieze un nume)
2. Excepții explicite, definite de utilizator
2
04.11.2022
3
04.11.2022
DECLARE
v_nume VARCHAR2(20);
BEGIN
SELECT nume INTO v_nume
FROM angajati
WHERE id_angajat=10;
DBMS_OUTPUT.PUT_LINE(v_nume);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Nu exista angajatul');
END;
/
4
04.11.2022
DECLARE
sal angajati.salariul%type;
BEGIN
SELECT salariul INTO sal
FROM angajati
WHERE prenume='John';
DBMS_OUTPUT.PUT_LINE('John are salariul de:'||sal);
EXCEPTION
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('Exista mai multi salariati cu
numele John! Utilizati un cursor pentru selectie!');
END;
/
10
5
04.11.2022
EXCEPTION
WHEN nume_exceptie THEN .........;
11
BEGIN
DELETE FROM departamente
WHERE id_departament=&id_dep;
END;
/
12
6
04.11.2022
SQLERRM
Returnează un șir de caractere reprezentând mesajul asociat
excepției
!! Într-o comandă SQL nu se pot apela funcţiile SQLCODE şi SQLERRM
14
7
04.11.2022
15
EXCEPTION
WHEN nume_exceptie THEN .........;
16
8
04.11.2022
Temă
Utilizând limbajul PL/SQL, rezolvaţi ecuaţia de gradul 2.
18
9
04.11.2022
CURSUL 7...
10