主頁(yè) > 知識(shí)庫(kù) > SQL LOADER錯(cuò)誤小結(jié)

SQL LOADER錯(cuò)誤小結(jié)

熱門(mén)標(biāo)簽:濮陽(yáng)清豐400開(kāi)頭的電話申請(qǐng) 真3地圖標(biāo)注 疫情時(shí)期電話機(jī)器人 地圖標(biāo)注可以編輯地名嗎 樂(lè)昌電話機(jī)器人 南京怎么申請(qǐng)400這種電話 南通智能外呼系統(tǒng)怎么樣 臺(tái)灣外呼系統(tǒng)軟件 地圖標(biāo)注跑線下市場(chǎng)

在使用SQL*LOADER裝載數(shù)據(jù)時(shí),由于平面文件的多樣化和數(shù)據(jù)格式問(wèn)題總會(huì)遇到形形色色的一些小問(wèn)題,下面是工作中累積、整理記錄的遇到的一些形形色色錯(cuò)誤。希望能對(duì)大家有些用處。(今天突然看到自己以前整理的這些資料,于是稍稍整理、歸納成這篇博客,后面如果碰到其他案例,會(huì)陸陸續(xù)續(xù)補(bǔ)充在此篇文章。)

ERROR 1:SQL*LOADER裝載數(shù)據(jù)成功,但是發(fā)現(xiàn)某些字段的中文為亂碼,這個(gè)是因?yàn)榫幋a緣故造成亂碼??稍诳刂莆募刑砑幼址幋a參數(shù)解決問(wèn)題,

例如:CHARACTERSET 'ZHS16GBK' 或 CHARACTERSET 'UTF8',根據(jù)數(shù)據(jù)庫(kù)實(shí)際情況設(shè)置數(shù)據(jù)庫(kù)字符集。

LOAD DATACHARACTERSET 'ZHS16GBK' INFILE '/oradata/impdata/test.txt' APPEND INTO TABLE ETL.TESTFIELDS TERMINATED BY '@#$' TRAILING NULLCOLS(MON_CD     

 , CITY_ID    

 ,CELL_ID  

 ,GPRS_USER_CNT  

,TERM_BRAND   

 ,BRAND_ID    

 ,FLUX      

,CELL_NAM   

 ) 

ERROR 2:裝載數(shù)據(jù)時(shí),報(bào)ORA-01722: invalid number錯(cuò)誤(不是數(shù)據(jù)類型錯(cuò)誤造成的一般錯(cuò)誤。而是最后一個(gè)字段為NUMBER類型時(shí),會(huì)報(bào)上述錯(cuò)誤)因?yàn)閾Q行符的問(wèn)題,如果NUMBER類型的列位于表的最后,最后其實(shí)會(huì)有換行符(如果為\n,不會(huì)出錯(cuò), 如果為\r\n,則會(huì)報(bào)錯(cuò)),在用SQLLDR導(dǎo)入時(shí)會(huì)把換行符也算作那個(gè)數(shù)字的一部分,從而出錯(cuò)。解決辦法加INTEGER或者加“TERMINATED BY WHITESPACE”。

Record 1: Rejected - Error on table DM.TM_WGGHF_CELL_USER_DAY, column TYPE_ID.

ORA-01722: invalid number

注意:如果數(shù)據(jù)字段類型是NUMBER類型,則用INTEGER會(huì)導(dǎo)致裝載的數(shù)據(jù)異常,99.875000 會(huì)變成一個(gè)很大的整數(shù)。

ERROR 3:裝載數(shù)據(jù)時(shí),由于里面有日期字段,需要添加日期函數(shù)處理特定格式的數(shù)據(jù)類型。否則會(huì)出現(xiàn)錯(cuò)亂格式

LOAD APPEND INTO TABLE ODS.TO_ALARM_LOGFIELDS TERMINATED BY '@#$' TRAILING NULLCOLS(COLLECT_DT           

 ,DATE_CD             

 ,HR_CD             

  ,DISPH_LOST_REASON        

 ,COLLET_TYPE_ID          

 ,ALM_TM       

 "TO_DATE(:ALM_TM,'DD-MM-YYYY HH24:MI:SS', 'NLS_DATE_LANGUAGE=American')"     

  ,ALM_DISCOVER_TM    "TO_DATE(:ALM_DISCOVER_TM, 'DD-MM-YYYY HH24:MI:SS', 'NLS_DATE_LANGUAGE=American')"  ,ALARM_DELSTA_ID         

 ,ALM_RESUME_TM     

"TO_DATE(:ALM_RESUME_TM, 'DD-MM-YYYY HH24:MI:SS', 'NLS_DATE_LANGUAGE=American')"   ,FP_ALM_SER           

 ,FP3_ALM_FINGMARK         

,AREA_NAM            

  ,VSEQUIP_NAM           

 ,VSEQUIP_STATUS_ID        

 ,VSEQUIP_SUBSTATUS_ID       

 ,PLAN_DISPH_TM    

 "TO_DATE(:PLAN_DISPH_TM, 'DD-MM-YYYY HH24:MI:SS', 'NLS_DATE_LANGUAGE=American')"  

 ,AUTO_PRETREAT_STATUS_ID     

 ,EMOS_RECORD_CNT         

 ,CONT_TIME            

 ,ALM_CNT        

 ) 

ERROR 4 如果數(shù)據(jù)文件里面缺少某些字段,可以在控制文件中添加常量參數(shù),例如下面缺少COLLECT_DT這個(gè)字段的數(shù)據(jù)(其實(shí)是根據(jù)數(shù)據(jù)文件以及某些參數(shù)生成的),可以通過(guò)CONSTANT常量參數(shù)解決。

LOAD DATACHARACTERSET 'UTF8'INFILE 'DEVICE_WIRELESS_GSMCELL_F_20120130190002.CSV' "str '\r\n'"APPEND INTO TABLE STAGE.TS_RSRC_IRMS_GSMCELLFIELDS TERMINATED BY ','OPTIONALLY ENCLOSED BY '\'' TRAILING NULLCOLS(    
COLLECT_DT CONSTANT   '20120214',          
CELL_ID           
,   
CELL_NAM           
,    FULL_NAM            
,    OTHER_NAM  ,    
OMC_CELL_NAM          ,    
GROUP_NAM         
,    GROUP_NAM_EN         
) 

  ERROR 5 如果換行是WINDOW平臺(tái)的格式(即rn, LINUX平臺(tái)是以n),如下圖所示(用vi編輯器查看)

LOAD DATAINFILE 'EDS.TW_BUSS_GN_CELLFLUX_HR4.csv' "str '\r\n'"APPEND INTO TABLE EDS.TW_BUSS_GN_CELLFLUX_HR_TEST        
FIELDS TERMINATED BY ',' TRAILING NULLCOLS (  
DATE_CD    
,    
HR_CD      
,    LAC_ID      ,   
CELL_ID    
,    BUSI_TYP1_CD   ,    
BUSI_TYP2_CD   ,   
CITY_ID     ,    
CELL_NAM     ,  
UP_FLUX     ,   
DOWN_FLUX    ,    
VSD_CNT     ,   
CI     
) 

ERROR 6 數(shù)據(jù)文件請(qǐng)見(jiàn)附件TEST.csv,數(shù)據(jù)文件中某個(gè)字段的值內(nèi)部有換行符,加載數(shù)據(jù)時(shí),想保持?jǐn)?shù)據(jù)原樣,即數(shù)據(jù)入庫(kù)后,數(shù)據(jù)里面保存有換行。此時(shí)可以通過(guò)"str '\r\n'"解決問(wèn)題。

如下所示,數(shù)據(jù)文件TEST.csv只有兩行數(shù)據(jù),每一條記錄中第二個(gè)字段都存在換行。

12,"這僅僅是

測(cè)試"

14,"數(shù)據(jù)有

換行"

LOAD DATA
INFILE 'TEST.csv' "str '\r\n'"
APPEND INTO TABLE TEST
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS
(
ID   ,
NAME  
)

ERROR 7 : 字段長(zhǎng)度超過(guò)255

SQLLDR默認(rèn)輸入的字段長(zhǎng)度為255個(gè)字符。如果某個(gè)字段的字符長(zhǎng)度超過(guò)255,而且你在控制文件里面,沒(méi)有指定其字符長(zhǎng)度,則會(huì)報(bào)下面錯(cuò)誤:SQL Loader- Field in data file exceeds maximum length

ERROR 8 : SQL*Loader-510 SQL*Loader-2026

這個(gè)是我遇到的一個(gè)特殊例子,SQLLDR裝載日志錯(cuò)誤如下:

SQL*Loader-510: Physical record in data file (/jkfile/DAD_CDR/TEMP/201207/EDS.TW_CUST_COSTCELL_HR_07.dat) is longer than the maximum
(20971520)
SQL*Loader-2026: the load was aborted because SQL Loader cannot continue.

因?yàn)檫@個(gè)EDS.TW_CUST_COSTCELL_HR_07.dat文件37G,剛開(kāi)始搜索了很多資料,也沒(méi)有解決問(wèn)題,其實(shí)最后發(fā)現(xiàn)時(shí)數(shù)據(jù)文件FTP拷貝傳送時(shí)損壞的緣故。

ERROR 9:SQL*Loader-605 ORA-01653

ORA-01653: unable to extend table tablename by 128 in tablespace xxxx

SQL*Loader-605: Non-data dependent ORACLE error occurred -- load discontinued.

出現(xiàn)這個(gè)錯(cuò)誤是因?yàn)楸硭诒砜臻g無(wú)法擴(kuò)展,導(dǎo)致SQL*LOADER裝載數(shù)據(jù)無(wú)法插入。要給用戶對(duì)應(yīng)的表空間擴(kuò)展空間

您可能感興趣的文章:
  • Oracle 高速批量數(shù)據(jù)加載工具sql*loader使用說(shuō)明
  • [Oracle] 常用工具集之SQL*Loader的用法
  • SqlLoader怎么使用

標(biāo)簽:廣安 馬鞍山 通遼 南京 福建 陜西 阿里 河北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL LOADER錯(cuò)誤小結(jié)》,本文關(guān)鍵詞  SQL,LOADER,錯(cuò)誤,小結(jié),SQL,LOADER,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL LOADER錯(cuò)誤小結(jié)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于SQL LOADER錯(cuò)誤小結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章