人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

SQL LOADER錯誤小結

發(fā)布日期:2021-12-21 14:26 | 文章來源:站長之家

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

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

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

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ù)時,報ORA-01722: invalid number錯誤(不是數(shù)據(jù)類型錯誤造成的一般錯誤。而是最后一個字段為NUMBER類型時,會報上述錯誤)因為換行符的問題,如果NUMBER類型的列位于表的最后,最后其實會有換行符(如果為\n,不會出錯, 如果為\r\n,則會報錯),在用SQLLDR導入時會把換行符也算作那個數(shù)字的一部分,從而出錯。解決辦法加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會導致裝載的數(shù)據(jù)異常,99.875000 會變成一個很大的整數(shù)。

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

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這個字段的數(shù)據(jù)(其實是根據(jù)數(shù)據(jù)文件以及某些參數(shù)生成的),可以通過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平臺的格式(即\r\n, LINUX平臺是以\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ù)文件請見附件TEST.csv,數(shù)據(jù)文件中某個字段的值內(nèi)部有換行符,加載數(shù)據(jù)時,想保持數(shù)據(jù)原樣,即數(shù)據(jù)入庫后,數(shù)據(jù)里面保存有換行。此時可以通過"str '\r\n'"解決問題。

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

12,"這僅僅是

測試"

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 : 字段長度超過255

SQLLDR默認輸入的字段長度為255個字符。如果某個字段的字符長度超過255,而且你在控制文件里面,沒有指定其字符長度,則會報下面錯誤:SQL Loader- Field in data file exceeds maximum length

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

這個是我遇到的一個特殊例子,SQLLDR裝載日志錯誤如下:

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.

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

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)這個錯誤是因為表所在表空間無法擴展,導致SQL*LOADER裝載數(shù)據(jù)無法插入。要給用戶對應的表空間擴展空間

版權聲明:本站文章來源標注為YINGSOO的內(nèi)容版權均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部