批量數(shù)據(jù)插入異常處理方法
1.1. 應(yīng)用場景
在報(bào)表系統(tǒng)中經(jīng)常需要進(jìn)行批量數(shù)據(jù)操作,如果這一批數(shù)據(jù)中某條記錄有問題,則會整個(gè)插入操作報(bào)異常,從而回滾整個(gè)操作。在日常的數(shù)據(jù)割接中也可能應(yīng)用到這類場景,在這次浙江手機(jī)閱讀業(yè)務(wù)數(shù)據(jù)庫三期割接中就使用了批量插入異常處理技術(shù)
第2章 模擬試驗(yàn)
2.1. 創(chuàng)建表結(jié)構(gòu)
-- Create table
create table DEFU
(
ID NUMBER(6),
NAME VARCHAR2(96),
AGE NUMBER(4)
)
tablespace MREAD_DATA
--
2.2. 往表中插入數(shù)據(jù)
由于要插入的數(shù)據(jù)中有些數(shù)據(jù)長度超過字段最大長度,從而導(dǎo)致報(bào)錯(cuò),操作失敗
第3章 解決方法
3.1. 創(chuàng)建目標(biāo)表的錯(cuò)誤日志表
begin
DBMS_ERRLOG.CREATE_ERROR_LOG('defu', 'ERR_defu');
end;
3.2. 使用如下語句進(jìn)行數(shù)據(jù)插入(數(shù)據(jù)插入成功)
Insert into defu
select id,
name,
44
from defu_test log errors
into err_defu('daily_load') reject limit unlimited;