Тук е даден пример за повдигане на грешка на приложението (raise_application_error) в съхранената процедура на PL/SQL, ако определеното условие не съвпада. Програмата ще предизвика изключение, ако комисионната (comm) е нула в таблицата EMP за даден номер на служител (empno).
Raise_Application_Error в пример за PL/SQL
СЪЗДАВАЙТЕ ИЛИ ЗАМЕНЕТЕ ПРОЦЕДУРА compute_sal (i_EMPNO В emp.empno%TYPE)ISCURSOR c_emp (p_empno emp.empno%TYPE)ISSELECT sal, commFROM empWHERE empno =p_empno;v_sal NUMBER;v_comm c_NUMBER; empno emp.empno%TYPE); v_sal, v_comm;CLOSE c_emp;АКО v_comm Е NULLTHENraise_application_error (-20001, 'Комисионната е нула.');END IF;DBMS_OUTPUT.put_line ('Общата заплата е:' || (v_sal + v_comm));END compute /предварително>Изпълнете
ЗАДАДЕТЕ ИЗХОД НА СЪРВЪР Включен;BEGINCOMPUTE_SAL(7369);END;/Изход
SQL> SET SERVEROUTPUT ON;SQL> BEGIN2 COMPUTE_SAL(7369);3 END;4 /BEGIN*ГРЕШКА на ред 1:ORA-20001:Комисионната е нулева.ORA-06512:на „SCOTT.COMPUTE_SAL“, ред 16ORA -06512:на ред 2Вижте също:
- Намерете номера на реда за грешка в PL/SQL
- Пример за задействане On-Error в Oracle Forms
- Ръководство за инсталиране на база данни за грешка Oracle 12c
ORA-01652:не може да се разшири temp сегмент със 128 в пространството за таблици СИСТЕМА:Как да се разшири?
Вътрешното присъединяване е същото като равнопоставеното?
Как мога да се свържа със сървър на Oracle Database 11g чрез ssh тунелна верига (двоен тунел, сървър в мрежата на компанията)?
Въведение в групово събиране на PL/SQL в базата данни на Oracle
Как да получите текущата дата в Oracle