Oracle例外定义
| 例外名 | ORA-XXXXX | SQLCODE |
| ACCESS_INTO_NULL | ORA-06530 | -6530 |
| CASE_NOT_FOUND | ORA-06592 | -6592 |
| COLLECTION_IS_NULL | ORA-06531 | -6531 |
| CURSOR_ALREADY_OPEN | ORA-06511 | -6511 |
| DUP_VAL_ON_INDEX | ORA-00001 | -1 |
| INVALID_CURSOR | ORA-01001 | -1001 |
| INVALID_NUMBER | ORA-01722 | -1722 |
| LOGIN_DENIED | ORA-01017 | -1017 |
| NO_DATA_FOUND | ORA-01403 | 100 |
| NO_DATA_NEEDED | ORA-06548 | -6548 |
| NOT_LOGGED_ON | ORA-01012 | -1012 |
| PROGRAM_ERROR | ORA-06501 | -6501 |
| ROWTYPE_MISMATCH | ORA-06504 | -6504 |
| SELF_IS_NULL | ORA-30625 | -30625 |
| SUBSCRIPT_BEYOND_COUNT | ORA-06533 | -6533 |
| SUBSCRIPT_OUTSIDE_LIMIT | ORA-06532 | -6532 |
| SYS_INVALID_ROWID | ORA-01410 | -1410 |
| STORAGE_ERROR | ORA-06500 | -6500 |
| TIMEOUT_ON_RESOURCE | ORA-00051 | -51 |
| TOO_MANY_ROWS | ORA-01422 | -1422 |
| USERENV_COMMITSCN_ERROR | ORA-1725 | -1725 |
| TRANSACTION_BACKED_OUT | ORA-00061 | -61 |
| VALUE_ERROR | ORA-06502 | -6502 |
| ZERO_DIVIDE | ORA-01476 | -1476 |
| OTHERS | - | - |
- COLLECTION_IS_NULL
- アトミック・ヌル のコレクションに対して操作を行なった場合
コンストラクタを呼び出してコレクションを初期化する。
- CURSOR_ALREADY_OPEN
- カーソルの二重オープン
- DUP_VAL_ON_INDEX
- 一意性の制約違反
⇒ ORA-00001: 一意制約に反しています
- INVALID_CURSOR
- オープンしていない カーソル に操作している、以下の IF 処理を参考に
IF cursor_name%ISOPEN THEN ~
- INVALID_NUMBER
- 数値に変換できない。SELECT DECODE(num_date, 1, 'aaa') ~ などの数値項目に対して文字を変換すると発生したりする。(NVL 関数 でも同じ)
⇒ ORA-01722: 数値が無効です。
- LOGIN_DENIED
- ログインの失敗(拒否)
- NO_DATA_FOUND
- すべてのレコードが既にフェッチ済、もしくは 該当するものがない。
- NOT_LOGGED_ON
- 接続が切断された。(接続中の場合には、サーバーのアラートログやクライアントの SQLNET.LOG を参照)
- PROGRAM_ERROR
- Oracle サポート行き。
- STORAGE_ERROR
- メモリエラー Oracle サポート行き。
- SUBSCRIPT_BEYOND_COUNT
- コレクション型において添え字が要素数を超過部分にアクセスしている場合に発生。
- SUBSCRIPT_BEYOND_COUNT
- コレクション型において添え字が有効範囲外。
- TIMEOUT_ON_RESOURCE
- SELECT ~ FOR UPDATE NOWAIT のロック取得失敗に発生。
- TOO_MANY_ROWS
- 単一レコードしか許されない部分で複数行処理戻されている。
SELECT ~ INTO ~に対して複数行戻す SQL になっている。
- USERENV_COMMITSCN_ERROR
- USERENV('COMMITSCN') を INSERT/UPDATE 以外で使用時に発生。
⇒ システム変更番号
- TRANSACTION_BACKED_OUT
- 共有インスタンス の DML_ LOCKS 初期化パラメータの値がお互いに矛盾している。
- VALUE_ERROR
- 数値のオーバーフローや NOT NULL 制約に違反している。
参考: ORA-06502: PL/SQL: 数値または値のエラー: 文字列バッファが小さすぎます
- ZERO_DIVIDE
- ゼロ除算
- OTHERS
- すべての例外をあらわす。
-
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
---RAISE_APPLICATION_ERROR(-20000,'It is will not be repeated');
ROLLBACK;
WHEN others then
dbms_output.put_line('other error');oracle判断是否执行成功
begin
insert into ...
-- rowcount 表示影响的行数,如果为0表示没有成功插入
if sql%rowcount > 0 then
commit;
else
rollback;
end if;
end; 热心网友
Oracle例外定义的更多相关文章
- 二十七、oracle 例外
一.例外分类oracle将例外分为预定义例外.非预定义例外和自定义例外三种.1).预定义例外用于处理常见的oracle错误.2).非预定义例外用于处理预定义例外不能处理的例外.3).自定义例外用于处理 ...
- oracle 例外
一.例外分类oracle将例外分为预定义例外.非预定义例外和自定义例外三种.1).预定义例外用于处理常见的oracle错误.2).非预定义例外用于处理预定义例外不能处理的例外.3).自定义例外用于处理 ...
- oracle数组定义与使用
定义固定长度的一维数组 type type_array is varray(10) of varchar2(20); 1.varray(10)表示定义长度为10的数组 2.varchar2(20)表示 ...
- oracle 集合定义
集合:是具有相同定义的元素的聚合.Oracle有两种类型的集合: 可变长数组(VARRAY):可以有任意数量的元素,但必须预先定义限制值. 嵌套表:视为表中之表,可以有任意数量的元素,不需要预先定义限 ...
- 转://Oracle中定义者权限和调用者权限案例分析
定义者权限:定义者权限指使用它所有者的权限,而不是当前用户来执行过程.因此,你可以限制用户执行的数据库操作,允许他们仅通过运行定义者权限的过程和函数访问数据.创建过程.函数和程序包的默认权限是定义者权 ...
- 分享知识-快乐自己:Oracle中定义及使用同义词
Oracle 同义词概念: Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系. 它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别; ...
- Oracle中定义package以及存储过程的使用
使用scott账户下的dept表: select * from dept order by deptno; 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 S ...
- ORACLE变量定义及使用(另,T-SQL EXISTS的PLSQL替代写法)
1. 简单变量 declare v_cnt NUMBER(10,0) := 0; BEGIN SELECT COUNT(1) INTO v_cnt FROM concept.Decoction W ...
- Oracle 关于定义约束 / 修改表结构 /修改约束
---约束分5种:主键 外键 唯一 非空 检查5类约束 Oracle中分列级别约束 与 表级别约束 列级别约束:在创建表时再列上面加约束 例如: create table table11( stuno ...
随机推荐
- BZOJ 1305 跳舞(二分+网络流)
无法直接构造最大流来解决这个问题,因为题目要求每首舞曲都需要n对男女进行跳舞. 答案又满足单调性,这启发我们二分答案,判断是否满流验证答案. 假设舞曲数目为x时满足条件,那么每个男生和女生都需要跳x次 ...
- BZOJ4810 Ynoi2017由乃的玉米田(莫队+bitset)
多组询问不强制在线,那么考虑莫队.bitset维护当前区间出现了哪些数,数组记录每个数的出现次数以维护bitset.对于乘法,显然应有一个根号范围内的因子,暴力枚举即可.对于减法,a[i]-a[j]= ...
- JS执行上下文(执行环境)详细图解
JS执行上下文(执行环境)详细图解 先随便放张图 我们在JS学习初期或者面试的时候常常会遇到考核变量提升的思考题.比如先来一个简单一点的. console.log(a); // 这里会打印出什么? v ...
- java 读写文件乱码问题
这样写,会出现乱码.原因是文件时gbk格式的, BufferedReader br = new BufferedReader(new FileReader(indir)); BufferedWrite ...
- 【题解】CF#403 D-Beautiful Pairs of Numbers
这题还挺对胃口的哈哈~是喜欢的画风!回家路上一边听歌一边想到的解法,写出来记录一下…… 首先,由于 \(b_{k} < a_{k + 1}\) ,所以我们可以看作是在一个长度为 n 的序列上选择 ...
- ARC077D 11 组合数
---题面--- 题解: 做这道题的时候zz了,,,, 写了个很复杂的式子,然而后面重新想就发现很简单了. 考虑用总的情况减去重复的. 假设唯一重复的两个数的位置分别是l和r,那么唯一会导致重复的方案 ...
- Leetcode中字符串总结
本文是个人对LeetCode中字符串类型题目的总结,纯属个人感悟,若有不妥的地方,欢迎指出. 一.有关数字 1.数转换 题Interger to roman和Roman to integer这两题是罗 ...
- 项目管理---git----快速使用git笔记(一)------git的简单介绍
最近svn代码管理服务器崩溃了,切换到git来运作. 经过几天的使用,感觉很不错. 尤其是代码合并到正式版本之前 可以对代码进行 code review. 这样能很好的保证团队的代码质量和一些重复代码 ...
- 【单调队列】【P1714】 切蛋糕
传送门 Description 今天是小Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值. 小Z作为寿星,自然希望吃到的第一块蛋糕的幸 ...
- 爬虫实例——爬取煎蛋网OOXX频道(反反爬虫——伪装成浏览器)
煎蛋网在反爬虫方面做了不少工作,无法通过正常的方式爬取,比如用下面这段代码爬取无法得到我们想要的源代码. import requests url = 'http://jandan.net/ooxx' ...