Oracle 10g第2版新特性之SQL和PL/SQL
2006-12-30 12:01:50 来源:WEB开发网核心提示: exec dbms_errlog.CREATE_ERROR_LOG ('ACCOUNTS','ERR_ACCOUNTS')接下来,执行前面的语句,Oracle 10g第2版新特性之SQL和PL/SQL(8),并加入事件记录子句,SQL> insert int
exec dbms_errlog.CREATE_ERROR_LOG ('ACCOUNTS','ERR_ACCOUNTS')
接下来,执行前面的语句,并加入事件记录子句。
SQL> insert into accounts
2 select * from accounts_ny
3 log errors into err_accounts
4 reject limit 200
5 /
6 rows created.
注意,表 ACCOUNTS_NY 包含 10 行,但只有六行被插入;其他四行由于某种错误而被拒绝。要找出错误是什么,可查询 ERR_ACCOUNTS 表。
SQL> select ORA_ERR_NUMBER$, ORA_ERR_MESG$, ACC_NO
2 from err_accounts;
ORA_ERR_NUMBER$ ORA_ERR_MESG$ ACC_NO
--------------- -------------------------------------------------- ------
1 ORA-00001:unique constraint (ARUP.PK_ACCOUNTS) vi 9997
olated
1 ORA-00001:unique constraint (ARUP.PK_ACCOUNTS)vi 9998
olated
1 ORA-00001:unique constraint (ARUP.PK_ACCOUNTS) vi 9999
olated
1 ORA-00001:unique constraint (ARUP.PK_ACCOUNTS) vi 10000
olated
请注意列 ORA_ERR_NUMBER$,它显示在 DML 语句执行期间所遇到的 Oracle 错误号,还有 ORA_ERR_MESG$,它显示错误消息。在本例中,您可以看到四条记录被丢弃是因为它们与主键约束 PK_ACCOUNTS 相冲突。该表还捕获表 ACCOUNTS 的所有列,包括列 ACC_NO。查看被拒绝的记录,注意这些帐号已经在表中存在,因此这些记录由于 ORA-00001 错误而被拒绝。如果没有错误事件记录子句,则整个语句将会出错,不会拒绝任务记录。通过这个子句,只有无效的记录被拒绝;其他所有记录均得以接受。
从源头保护代码:WRAP 程序包
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
更多精彩
赞助商链接