資料庫-多步操作產生錯誤,請檢查每一步的狀態值
問題描述:在進行資料遷移過程中報的錯,百度也找不到準確答案,哎,自己摸索吧
--按照id排序,匯入成功4045條資料,後面就報錯:多步操作產生錯誤,請檢查每一步的狀態值
[DSRzhizhi]
OrgDBName=zhizhilaoxitong
OrgTable=TC_DUD_PARTY
TarDBName=zhengshi
TarTable=T_XZ_PARTY
IsValid=1
IsTime=
OrgSign=
TarSign=
sGetSQL=select id,caseid,partytypeid,name,personid,sex,birthday,contact,address,diploma,partyrace,driverlicensetypeid,driverlicensedocid,driverlicenseissueoffice,businesslicensetype,businesslicensecode,partyunit,unitaddress,corporation,corperationsex,corperationaddress,corperationcontact,corperationidnumber,updatetime,updateaccountid,state,workunit,workunitaddr,businesslicensetypecontent from TC_DUD_PARTY order by id
sAddSQL=insert into T_XZ_PARTY (PARTY_ID,CASE_ID,party_type,party_name,party_idnum,party_sex,party_birth,party_contno,party_addr,party_edudegree,party_folk,types_driv_license,driver_licenseno,DRIVER_LICENSEISSUE,qc_category,qc_no,company_name,unit_address,legal_name,CORPERATIONSEX,corperationaddress,corperationcontact,corperationidnumber,modify_time,modify_person,ISESCAPE,party_post,unitaddr,businesslicensetypecontent,ZHIDUI,LAOXITONG) Values (:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,2,1)
TbTimeGap=5000
SWhereSQL=
SUpdateSQL=
對欄位型別、長度都進行了對比,沒有什麼問題,難道是日期欄位超出了範圍麼(機智^_^)
於是取4045後面的幾條資料檢查:
select id,
caseid,
partytypeid,
name,
personid,
sex,
birthday,
contact,
address,
diploma,
partyrace,
driverlicensetypeid,
driverlicensedocid,
driverlicenseissueoffice,
businesslicensetype,
businesslicensecode,
partyunit,
unitaddress,
corporation,
corperationsex,
corperationaddress,
corperationcontact,
corperationidnumber,
updatetime,
updateaccountid,
state,
workunit,
workunitaddr,
businesslicensetypecontent
from (
select id,
caseid,
partytypeid,
name,
personid,
sex,
birthday,
contact,
address,
diploma,
partyrace,
driverlicensetypeid,
driverlicensedocid,
driverlicenseissueoffice,
businesslicensetype,
businesslicensecode,
partyunit,
unitaddress,
corporation,
corperationsex,
corperationaddress,
corperationcontact,
corperationidnumber,
updatetime,
updateaccountid,
state,
workunit,
workunitaddr,
businesslicensetypecontent,
row_number() over(order by id) rn
from TC_DUD_PARTY
order by id) where rn between 4044 and 4048
果然發現問題,birthday這個欄位值不對,隨便查詢下就查出了許多錯誤的資料
1900年到現在已經118歲了,應該足夠了,小於1900年的都屬於髒資料,所以查詢的時候要進行過濾
where t.birthday >= to_date('1900/1/1 00:00:00', 'yyyy-MM-dd HH24:mi:ss')
select id,
caseid,
partytypeid,
name,
personid,
sex,
birthday,
contact,
address,
diploma,
partyrace,
driverlicensetypeid,
driverlicensedocid,
driverlicenseissueoffice,
businesslicensetype,
businesslicensecode,
partyunit,
unitaddress,
corporation,
corperationsex,
corperationaddress,
corperationcontact,
corperationidnumber,
updatetime,
updateaccountid,
state,
workunit,
workunitaddr,
businesslicensetypecontent
from (
select id,
caseid,
partytypeid,
name,
personid,
sex,
birthday,
contact,
address,
diploma,
partyrace,
driverlicensetypeid,
driverlicensedocid,
driverlicenseissueoffice,
businesslicensetype,
businesslicensecode,
partyunit,
unitaddress,
corporation,
corperationsex,
corperationaddress,
corperationcontact,
corperationidnumber,
updatetime,
updateaccountid,
state,
workunit,
workunitaddr,
businesslicensetypecontent,
row_number() over(order by id) rn
from TC_DUD_PARTY t where t.birthday >= to_date('1900/1/1 00:00:00', 'yyyy-MM-dd HH24:mi:ss')
order by id) where rn between 4044 and 4048
最後別忘了對遷移指令碼加上過濾條件:
[DSRzhizhi]
OrgDBName=zhizhilaoxitong
OrgTable=TC_DUD_PARTY
TarDBName=zhengshi
TarTable=T_XZ_PARTY
IsValid=1
IsTime=
OrgSign=
TarSign=
sGetSQL=select id,caseid,partytypeid,name,personid,sex,birthday,contact,address,diploma,partyrace,driverlicensetypeid,driverlicensedocid,driverlicenseissueoffice,businesslicensetype,businesslicensecode,partyunit,unitaddress,corporation,corperationsex,corperationaddress,corperationcontact,corperationidnumber,updatetime,updateaccountid,state,workunit,workunitaddr,businesslicensetypecontent from TC_DUD_PARTY where birthday >= to_date('1900/1/1 00:00:00', 'yyyy-MM-dd HH24:mi:ss') order by id
sAddSQL=insert into T_XZ_PARTY (PARTY_ID,CASE_ID,party_type,party_name,party_idnum,party_sex,party_birth,party_contno,party_addr,party_edudegree,party_folk,types_driv_license,driver_licenseno,DRIVER_LICENSEISSUE,qc_category,qc_no,company_name,unit_address,legal_name,CORPERATIONSEX,corperationaddress,corperationcontact,corperationidnumber,modify_time,modify_person,ISESCAPE,party_post,unitaddr,businesslicensetypecontent,ZHIDUI,LAOXITONG) Values (:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,:s,2,1)
TbTimeGap=5000
SWhereSQL=
SUpdateSQL=
測試OK~~相關文章
- oracle rman backup命令檢查資料庫錯誤Oracle資料庫
- 檢視映象資料庫的狀態資料庫
- 出現ORA-01552錯誤別忘了查詢資料庫狀態資料庫
- openguass 3.1.0 資料庫啟動,關閉,狀態檢查資料庫
- openguass 資料庫狀態查詢資料庫
- 【YashanDB資料庫】yasboot查詢資料庫狀態時顯示資料庫狀態為off資料庫boot
- 如何檢視資料庫當前的狀態?資料庫
- Oracle資料庫檢視使用者狀態Oracle資料庫
- 常見MongoDB資料庫操作產生的鎖總結MongoDB資料庫
- 開啟ftp伺服器上的資料夾時發生錯誤,請檢查是否有許可權訪問該資料夾FTP伺服器
- [資料庫中介軟體]centos6.6下配置libzdb所產生的錯誤資料庫CentOS
- PbootCMS登入請求發生錯誤,檢查伺服器環境pathinfo及偽靜態規則配置boot伺服器
- 今天早上檢查資料庫的備份日誌,發現其中一個資料庫的expdp錯誤:資料庫
- 10G建立資料庫時發生的錯誤資料庫
- 錯誤檢查思路
- win10 d盤錯誤檢查如何操作_win10 d盤錯誤檢查詳細方法Win10
- GBase8s 資料庫檢視狀態資料庫
- Docker 容器的健康狀態檢查Docker
- oracle資料庫狀態Oracle資料庫
- 爛筆頭——Oracle檢視資料庫開啟狀態Oracle資料庫
- Oracle SCN健康狀態檢查Oracle
- oracle物理dg狀態檢查Oracle
- 【精益生產】專案管理要避免的錯誤,請引以為戒!專案管理
- Oracle資料庫的靜默狀態和掛起狀態Oracle資料庫
- 資料庫訂單狀態資料庫
- 資料庫配置檢查資料庫
- 資料庫啟動在mount狀態,無任何報錯資料庫
- 資料庫啟動的不同狀態資料庫
- Win10磁碟錯誤怎麼檢查 win10檢查磁碟錯誤的方法Win10
- 資料庫查詢配置值資料庫
- 開發人員生產力狀態
- RAC常見命令檢查狀態
- 2.檢查網路狀態
- linux檢查埠狀態命令Linux
- 檢查Capital許可狀態API
- 網路狀態的檢查和MJRefresh
- 資料庫startup時發生ora-600錯誤的傻瓜手冊資料庫
- oracle資料庫例項狀態Oracle資料庫