当前位置:文库下载 > 所有分类 > IT/计算机 > Oracle 错误处理
免费下载此文档侵权投诉

Oracle 错误处理

oracle异常处理详解和语法

1 理解
在运行程序时出现的错误叫做异常
发生异常后,语句将停止执行,跳转到 PL/SQL 块的异常处理部分
[DECLARE declarations] 声明部分:定义变量、游标和自定义异常
BEGIN
executable statements 可执行部分:SQL和过程语句
[EXCEPTION handlers] 异常处理:出现错误时需要执行的操作
END;
异常有两种类型:
预定义异常:由系统产生的,当 PL/SQL 程序违反Oracle规则时进行报错。
例如:向类型为字符的列中写入boolean类型变量。
用户定义异常(自定义异常):可以在 PL/SQL 块的声明部分定义用户定义异常,用于违法应用程序的逻辑时进行报错。
例如:不允许用户输入小于10的数字。



2 预定义异常
违反了oracle的规则时引起的异常。
no_data_found 不存在满足条件的数据行
too_many_rows 当我们用select into 时候只允许返回一行数据,这个错误代表有多行数据存在。
value_error 给某个变量赋值时,超出变量定义的类型或范围。

declare
stuname char(8);
begin
select f_name into stuname from t_student;
exception
when too_many_rows then
dbms_output.put_line('返回多行');
end;




3 用户定义异常
用户定义异常:用于违法应用程序的逻辑时进行报错。

在声明部分定义用户定义异常
exe1 EXCEPTION;
自定义的异常通过 RAISE 语句显式引发
RAISE exe1
在异常处理部分有2种处理方式提示错误信息
1 调用dbms_output.put_line 过程,提示错误信息
2 调用 RAISE_APPLICATION_ERROR 过程,提示错误信息
语法:RAISE_APPLICATION_ERROR(error_number, error_message);
用于创建用户定义的错误信息,错误消息以Oracle消息的形式显示,ora-20001(error_number)。
error_number错误编号必须介于 –20000 和 –20999 之间
error_message错误消息的长度可长达 2048 个字节

DECLARE
invalidCATEGORY EXCEPTION;
category VARCHAR2(10);
BEGIN
category := '&Category';
IF category NOT IN ('附件','顶盖','备件') THEN
RAISE invalidCATEGORY;
ELSE
DBMS_OUTPUT.PUT_LINE('您输入的类别是'|| category);
END IF;
EXCEPTION
WHEN invalidCATEGORY THEN
DBMS_OUTPUT.PUT_LINE('无法识别该类别');
END;






DECLARE
rate itemfile.itemrate%TYPE;
rate_exception EXCEPTION;
BEGIN
SELECT NVL(itemrate,0) INTO rate FROM itemfile
WHERE itemcode = 'i207';
IF rate = 0 THEN
RAISE rate_exception;



ELSE
DBMS_OUTPUT.PUT_LINE('项费率为:' || rate);
END IF;
EXCEPTION
WHEN rate_exception THEN
RAISE_APPLICATION_ERROR(-20001, '未指定项费率');
END;

第1页

免费下载Word文档免费下载:Oracle 错误处理

(下载1-1页,共1页)

猜你喜欢

返回顶部