oracle异常以Exception开始,但是没有结束符号,所以只能放到语句的最后,这个是我自己认为的,不知道对不对,因为一直没有找到怎么结束一个异常的方法,就跟java异常一样,一个{}就是包括这段代码,后面可以继续写。
create or replace function fun_get()
return number is feetotal number;
begin
select fee into feetotal from demo;
return feetotal;
Exception
when no_data_found then
return 0;
end;
这些异常是从网上找来的,大家可以参考下:
命名的系统异常 产生原因
2 access_into_null 未定义对象
3 CASE_NOT_FOUND CASE 中若未包含相应的 WHEN ,并且没有设置 ELSE 时
4 COLLECTION_IS_NULL 集合元素未初始化
5 CURSER_ALREADY_OPEN 游标已经打开
6 DUP_VAL_ON_INDEX 唯一索引对应的列上有重复的值
7 INVALID_CURSOR 在不合法的游标上进行操作
8 INVALID_NUMBER 内嵌的 SQL 语句不能将字符转换为数字
9 NO_DATA_FOUND 使用 select into 未返回行,或应用索引表未初始化的元素时
10 TOO_MANY_ROWS 执行 select into 时,结果集超过一行
11 ZERO_DIVIDE 除数为 0
12 SUBSCRIPT_BEYOND_COUNT 元素下标超过嵌套表或 VARRAY 的最大值
13 SUBSCRIPT_OUTSIDE_LIMIT 使用嵌套表或 VARRAY 时,将下标指定为负数
14 VALUE_ERROR 赋值时,变量长度不足以容纳实际数据
15 LOGIN_DENIED 应用程序连接到 oracle 数据库时,提供了不正确的用户名或密码
16 NOT_LOGGED_ON PL/SQL 应用程序在没有连接 oralce 数据库的情况下访问数据
17 PROGRAM_ERROR PL/SQL 内部问题,可能需要重装数据字典& pl./SQL 系统包
18 ROWTYPE_MISMATCH 宿主游标变量与 PL/SQL 游标变量的返回类型不兼容
19 SELF_IS_NULL 使用对象类型时,在 null 对象上调用对象方法
20 STORAGE_ERROR 运行 PL/SQL 时,超出内存空间
21 SYS_INVALID_ID 无效的 ROWID 字符串
22 TIMEOUT_ON_RESOURCE Oracle 在等待资源时超时