Oracle认证第五章知识点辅导(1)
时间:2013-10-24
来源:Oracle认证考试网 浏览次数:119
【华夏培训网:中国教育培训第一门户】
代码演示:PRAGMA EXCEPTION_INIT异常outtersegDECLARE null_salary EXCEPTION; PRAGMA EXCEPTION_INIT(null_salary, -20101);
代码演示:PRAGMA EXCEPTION_INIT异常
<<outterseg>>
DECLARE
null_salary EXCEPTION;
PRAGMA EXCEPTION_INIT(null_salary, -20101); ①
BEGIN
<<innerStart>> ②
DECLARE
curr_comm NUMBER;
BEGIN
SELECT comm INTO curr_comm FROM emp WHERE empno = &empno;
IF curr_comm IS NULL THEN
RAISE_APPLICATION_ERROR(-20101, 'Salary is missing'); ③
ELSE
dbms_output.put_line('有津贴');
END IF;
END;
EXCEPTION
WHEN NO_DATA_FOUND THEN
dbms_output.put_line('没有发现行');
WHEN null_salary THEN
dbms_output.put_line('津贴未知'); ④
WHEN OTHERS THEN
dbms_output.put_line('未知异常');
END;
代码解析:
① 把异常名称null_salary与异常码-20101关联,该语句由于是预编译语句,必须放在声明部分。也就是说-20101的异常名称就是null_salary。
② 嵌套PL/SQL语句块
③ 在内部PL/SQL语句块中引发应用系统异常-20101。
④ 在外部的PL/SQL语句块中就可以用异常名null_salary进行捕获。
Oracle认证