日期:2014-05-16  浏览次数:20389 次

数据批量插入异常处理方法
1.1.应用场景
在报表系统中经常需要进行批量数据操作,如果这一批数据中某条记录有问题,则会整个插入操作报异常,从而回滚整个操作。在日常的数据割接中也可能应用到这类场景,在这次浙江手机阅读业务数据库三期割接中就使用了批量插入异常处理技术
2.1. 创建表结构
-- Create table
create table xll
(
  ID   NUMBER(6),
  NAME VARCHAR2(96),
  AGE  NUMBER(4)
)
tablespace MREAD_DATA
--

2.2. 往表中插入数据
由于要插入的数据中有些数据长度超过字段最大长度,从而导致报错,操作失败
ORA-01438:值大于为此列指定的允许精度
3.1. 创建目标表的错误日志表
begin
DBMS_ERRLOG.CREATE_ERROR_LOG('xll', 'ERR_xll');
end;
3.2. 使用如下语句进行数据插入(数据插入成功)
Insert into xll
  select id,
         name,
         44
    from xll_test log errors
    into err_xll('daily_load') reject limit unlimited;