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 ...
随机推荐
- bzoj3782上学路线
题意:从n*m网格图的左下角走到右上角(n,m<=10^10),有t个坐标不能经过(t<=200),只能向上向右走,问有多少种不同的走法,对p取模, p只有两种取值,1000003(质数) ...
- 【bzoj5108】[CodePlus2017]可做题 拆位+乱搞
题目描述 给出一个长度为 $m$ 的序列 $a$ ,编号为 $a_1\sim a_m$,其中 $n$ 个位置的数已经确定,剩下的位置的数可以任意指定.现在令 $b$ 表示 $a$ 的前缀异或和,求 $ ...
- 【bzoj4602】[Sdoi2016]齿轮 BFS
题目描述 给出一张n个点m条边的有向图,每条边 (u,v,x,y) 描述了 u 的点权乘 x 等于 v 的点权乘 y (点权可以为负).问:是否存在满足条件的图. 输入 有多组数据,第一行给定整数T, ...
- vdbench和fio测试磁盘性能的对比总结
一.安装 1.安装vdbench,首先安装java:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213 ...
- Luogu1731 NOI1999生日蛋糕(搜索)
非常经典的剪枝题然而一直没有写.感觉自己连普及组水平都没有了. 1.半径和高枚举范围满足加上后总体积不超过n且剩下每层还能放. 2.半径从大到小枚举,因为体积正比于半径平方而面积正比于半径,大的半径更 ...
- POJ3525:Most Distant Point from the Sea——题解
http://poj.org/problem?id=3525 题目大意:给一个逆时针序列的多边形点集,求其中可以画的最大半径的圆的半径. —————————————————————— 二分枚举半径长度 ...
- BZOJ1208:[HNOI2004]宠物收养所——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=1208 Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物 ...
- bzoj3232圈地游戏——0/1分数规划+差分建模+判环
Description DZY家的后院有一块地,由N行M列的方格组成,格子内种的菜有一定的价值,并且每一条单位长度的格线有一定的费用. DZY喜欢在地里散步.他总是从任意一个格点出发,沿着格线行走直到 ...
- input file上传图片预览,非插件
Input标签 <input type="file" name="pic" onchange="changepic(this)" mu ...
- HDU 4417 主席树写法
Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...