成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle數據庫SqlLoad常用技巧總結

數據庫 Oracle
本文我們主要介紹了Oracle數據庫SqlLoad常用技巧的相關知識,共包括14種常用的使用技巧以及測試用文件的源代碼,希望能夠對您有所收獲!

Oracle數據庫SqlLoad常用技巧的相關知識是本文我們主要要介紹的內容,本文我們總結了14種SqlLoad的使用技巧,并給出了測試用的文件源碼,接下來我們就開始一一介紹這部分內容,希望能夠對您有所幫助。

1、控制文件中注釋用“--”。

2、為防止導入出現中文亂碼,在控制文件中加入字符集控制

 

  1. LOAD DATA  
  2. CHARACTERSET ZHS16GBK  

 

3、讓某一列成為行號,用RECNUM關鍵字

 

  1. load data      
  2. infile *      
  3. into table t      
  4. replace      
  5. ( seqno RECNUM //載入每行的行號      
  6. text Position(1:1024))      
  7. BEGINDATA      
  8. fsdfasj  

 

4、過濾某一列,用FILLER關鍵字

 

  1. LOAD DATA    
  2. TRUNCATE INTO TABLE T1    
  3. FIELDS TERMINATED BY ','    
  4. ( field1,    
  5. field2 FILLER,    
  6. field3    
  7. )   

 

5、過濾行

在INTO TABLE table_name后加WHEN過濾條件,但功能有限,如果以豎線分隔符的文件,不能實現字段級的過濾,定長的還好。

 

  1. LOAD DATA    
  2. INFILE 'mydata.dat'    
  3. BADFILE 'mydata.bad'    
  4. DISCARDFILE 'mydata.dis'    
  5. APPEND    
  6. INTO TABLE my_selective_table    
  7. WHEN (01) <> 'H' and (01) <> 'T' and (30:37) = '20031217'    
  8. (    
  9. region              CONSTANT '31',    
  10. service_key         POSITION(01:11)   INTEGER EXTERNAL,    
  11. call_b_no           POSITION(12:29)   CHAR    
  12. )   

 

6、過濾首行,用OPTIONS (SKIP 1)選項,也可以寫在命令行中,如:

sqlldr sms/admin control=test.ctl skip=1  

7、TRAILING NULLCOLS的使用,作用是表的字段沒有對應的值時允許為空

如:

 

  1. LOAD DATA      
  2. INFILE *      
  3. INTO TABLE DEPT      
  4. REPLACE      
  5. FIELDS TERMINATED BY ','      
  6. TRAILING NULLCOLS // 其實下面的ENTIRE_LINE在BEGINDATA后面的數據中是沒有直接對應的列的值的如果第一行改為 10,Sales,Virginia,1/5/2000,, 就不用TRAILING NULLCOLS了      
  7. (DEPTNO,      
  8. DNAME "upper(:dname)", // 使用函數      
  9. LOC "upper(:loc)",      
  10. LAST_UPDATED date 'dd/mm/yyyy', // 日期的一種表達方式 還有'dd-mon-yyyy' 等      
  11. ENTIRE_LINE ":deptno||:dname||:loc||:last_updated"      
  12. )      
  13. BEGINDATA      
  14. 10,Sales,Virginia,1/5/2000      
  15. 20,Accounting,Virginia,21/6/1999      
  16. 30,Consulting,Virginia,5/1/2000      
  17. 40,Finance,Virginia,15/3/2001  

 

8、添加、修改數據

(1)、  

 

  1. LOAD DATA    
  2. INFILE *    
  3. INTO TABLE tmp_test    
  4. ( rec_no                      "my_db_sequence.nextval",    
  5. region                      CONSTANT '31',    
  6. time_loaded                 "to_char(SYSDATE, 'HH24:MI')",    
  7. data1        POSITION(1:5) ":data1/100",    
  8. data2        POSITION(6:15) "upper(:data2)",    
  9. data3        POSITION(16:22)"to_date(:data3, 'YYMMDD')"    
  10. )    
  11. BEGINDATA    
  12. 11111AAAAAAAAAA991201    
  13. 22222BBBBBBBBBB990112  

 

(2)、  

 

  1. LOAD DATA    
  2. INFILE 'mail_orders.txt'    
  3. BADFILE 'bad_orders.txt'    
  4. APPEND    
  5. INTO TABLE mailing_list    
  6. FIELDS TERMINATED BY ","    
  7. ( addr,    
  8. city,    
  9. state,    
  10. zipcode,    
  11. mailing_addr   "decode(:mailing_addr, null, :addr, :mailing_addr)",    
  12. mailing_city   "decode(:mailing_city, null, :city, :mailing_city)",    
  13. mailing_state    
  14. )   

 

9、合并多行記錄為一行記錄

通過關鍵字concatenate 把幾行的記錄看成一行記錄:

 

  1. LOAD DATA      
  2. INFILE *      
  3. concatenate 3 // 通過關鍵字concatenate 把幾行的記錄看成一行記錄      
  4. INTO TABLE DEPT      
  5. replace      
  6. FIELDS TERMINATED BY ','      
  7. (DEPTNO,      
  8. DNAME "upper(:dname)",      
  9. LOC "upper(:loc)",      
  10. LAST_UPDATED date 'dd/mm/yyyy'      
  11. )      
  12. BEGINDATA      
  13. 10,Sales, // 其實這3行看成一行 10,Sales,Virginia,1/5/2000      
  14. Virginia,      
  15. 1/5/2000  

 

10、用”|+|”分隔符,避免數據混淆:fields terminated by "|+|"

11、如果數據文件包含在控制文件中,用INFILE *

如下:

 

  1. LOAD DATA    
  2. INFILE *    
  3. append    
  4. INTO TABLE tmp_test    
  5. FIELDS TERMINATED BY ","    
  6. OPTIONALLY ENCLOSED BY '"'    
  7. TRAILING NULLCOLS    
  8. ( data1,    
  9. data2    
  10. )    
  11. BEGINDATA    
  12. 11111,AAAAAAAAAA    
  13. 22222,"A,B,C,D,"   

 

12、一次導入多個文件到同一個表

 

  1. LOAD DATA    
  2. INFILE file1.dat    
  3. INFILE file2.dat    
  4. INFILE file3.dat    
  5. APPEND    
  6. INTO TABLE emp    
  7. ( empno POSITION(1:4)   INTEGER EXTERNAL,    
  8. ename POSITION(6:15) CHAR,    
  9. deptno POSITION(17:18) CHAR,    
  10. mgr    POSITION(20:23) INTEGER EXTERNAL    
  11. )  

 

13、將一個文件導入到不同的表

(1)、  

 

  1. LOAD DATA    
  2. INFILE *    
  3. INTO TABLE tab1 WHEN tab = 'tab1'    
  4. ( tab FILLER CHAR(4),    
  5. col1 INTEGER    
  6. )    
  7. INTO TABLE tab2 WHEN tab = 'tab2'    
  8. ( tab FILLER POSITION(1:4),    
  9. col1 INTEGER    
  10. )    
  11. BEGINDATA    
  12. tab1|1    
  13. tab1|2    
  14. tab2|2    
  15. tab3|3    
  16. ==============  

 

(2)、  

 

  1. LOAD DATA    
  2. INFILE 'mydata.dat'    
  3. REPLACE    
  4. INTO TABLE emp    
  5. WHEN empno != ' '    
  6. ( empno POSITION(1:4)   INTEGER EXTERNAL,    
  7. ename POSITION(6:15) CHAR,    
  8. deptno POSITION(17:18) CHAR,    
  9. mgr    POSITION(20:23) INTEGER EXTERNAL    
  10. )    
  11. INTO TABLE proj    
  12. WHEN projno != ' '    
  13. ( projno POSITION(25:27) INTEGER EXTERNAL,    
  14. empno POSITION(1:4)   INTEGER EXTERNAL    
  15. )   

 

14、過濾掉的數據文件路徑指定

 

  1. /opt/app/oracle/product/10.2.0/bin/sqlldr APS/APS control=/home/oracle/APS_LOAD/ctl/AP_CONTRACT.CTL LOG=/home/oracle/APS_LOAD/log/$yesterday/AP_CONTRACT_$yesterday.log bad=/home/oracle/APS_LOAD/bad/DUE_BILL_$yesterday.bad rows=10000 readsize=20000000 bindsize=20000000  DISCARD=/home/oracle/APS_LOAD/bad/discard_ts.dis 

 

15、附:測試用控制文件

 

  1. LOAD DATA    
  2. INFILE '/home/oracle/APS_LOAD/dat/APS_AP_CONTRACT.dat'    
  3. TRUNCATE    
  4. INTO TABLE AP_CONTRACT    
  5. WHEN (01)<>'1'    
  6. FIELDS TERMINATED BY "|"    
  7. TRAILING NULLCOLS    
  8. (    
  9. AGMT_NO                  "(TRIM(:AGMT_NO               ))",        
  10. CONTRACT_NO         FILLER, --     "(TRIM(:CONTRACT_NO           ))",     
  11. LOAN_AMT                 "(TRIM(:LOAN_AMT              ))",    
  12. AGMT_HOLDER              "(TRIM(:AGMT_HOLDER           ))",    
  13. LOAN_TYPE_CD             "(TRIM(:LOAN_TYPE_CD          ))",    
  14. CURR_CD                  "(TRIM(:CURR_CD               ))",    
  15. BALANCE                  "(TRIM(:BALANCE               ))",    
  16. LOAN_DIRC_CD             "(TRIM(:LOAN_DIRC_CD          ))",    
  17. AGMT_START_DATE          "(TRIM(:AGMT_START_DATE       ))",    
  18. AGMT_END_DATE            "(TRIM(:AGMT_END_DATE         ))",    
  19. AGMT_BELONG_ORG_NO       "(TRIM(:AGMT_BELONG_ORG_NO    ))",    
  20. MANAGER_NO               "(TRIM(:MANAGER_NO            ))",    
  21. PROCESS_RATE             "(TRIM(:PROCESS_RATE          ))",    
  22. INSURE_METH_TYPE_CD      "(TRIM(:INSURE_METH_TYPE_CD   ))",    
  23. AGMT_SIGN_DATE           "(TRIM(:AGMT_SIGN_DATE        ))",    
  24. LOAN_PROP_CD             "(TRIM(:LOAN_PROP_CD          ))",    
  25. LOAN_USE_TYPE            "(TRIM(:LOAN_USE_TYPE         ))",    
  26. ENTRUST_LOAN_FLAG        "(TRIM(:ENTRUST_LOAN_FLAG     ))",    
  27. ENTRUST_NAME             "(TRIM(:ENTRUST_NAME          ))",    
  28. FARM_LOAN_FLAG           "(TRIM(:FARM_LOAN_FLAG        ))",    
  29. FARM_LOAN_TYPE_CD        "(TRIM(:FARM_LOAN_TYPE_CD     ))",    
  30. LOAN_BIZ_TYPE_CD         "(TRIM(:LOAN_BIZ_TYPE_CD      ))",    
  31. ID_TEST                       RECNUM ,    
  32. CHAR_TEST                     CONSTANT '31',    
  33. SQ                        "sqlldr.nextval",    
  34. TEST_4                    "TO_CHAR(SYSDATE,'YYYYMMDD HH24:MI:SS')",    
  35. TEST_5                    "(TRIM(:LOAN_BIZ_TYPE_CD)||'---'||TRIM(:AGMT_NO))"    
  36. )   

 

關于Oracle數據庫SqlLoad常用技巧的相關知識就介紹到這里了,希望本次的介紹能夠對您有所收獲!

【編輯推薦】

  1. Oracle學習筆記之DECODE及常用窗口函數
  2. Oracle數據庫各類控制語句的使用詳細介紹
  3. Oracle數據庫日期范圍查詢的兩種實現方式
  4. Oracle數據庫只讀模式的CACHE BUFFERS CHAINS測試
  5. Oracle 10g數據庫中UNDO_RETENTION參數的使用詳解
責任編輯:趙鵬 來源: CSDN博客
相關推薦

2011-09-02 10:37:15

Oraclesqlload用法

2011-03-17 14:09:25

Oracle數據庫字符

2010-11-29 11:51:59

Sybase數據庫維護

2011-08-01 13:59:22

Oracle數據庫命名空間

2011-04-12 10:09:33

Oracle數據庫關閉

2010-03-18 09:28:14

Oracle數據庫遷移

2010-04-06 11:19:28

Oracle數據庫

2010-04-20 10:41:49

Oracle數據庫

2010-04-06 16:50:07

Oracle數據庫

2010-04-13 10:32:40

Oracle數據庫編程

2011-06-14 15:11:59

ORACLE

2011-03-17 16:19:42

Oracle數據庫管理

2009-05-18 13:18:54

字符Oracle字符串

2011-03-17 16:35:20

Oracle數據庫段管理

2019-08-28 07:11:00

Oracle數據庫LOB

2010-04-06 11:02:30

Oracle 數據庫

2010-11-15 10:30:04

Oracle數據庫啟動

2020-06-04 10:49:53

Pandas字符串技巧

2016-12-12 13:07:57

數據庫優化SQL

2010-04-21 11:43:33

Oracle數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品一区二区三区久久久久 | 国产一区二区视频在线观看 | 久久噜噜噜精品国产亚洲综合 | 亚洲人成免费 | 欧美成人a | 色综合美女 | 亚洲国产精品一区二区久久 | 国产精品久久久久久久久久久久久久 | 日本精品一区二区三区在线观看视频 | 国产露脸对白88av | 精品国产乱码久久久久久闺蜜 | 亚洲精品免费观看 | 久久免费精品 | 亚洲精品黑人 | 国产日韩精品久久 | 免费看淫片 | 天天爽天天操 | a级在线免费 | 在线午夜 | 日韩一区二区在线视频 | 国产精品久久久久久久白浊 | 日日操操 | 二区欧美| 国产一区二区三区在线免费 | 99精品欧美一区二区蜜桃免费 | 日韩在线免费视频 | 久久久久国产精品人 | 午夜视频免费 | 一二三在线视频 | 国产麻豆乱码精品一区二区三区 | 国产成人在线一区二区 | 日韩中文字幕免费 | 欧美激情精品久久久久久免费 | 狠狠的干| 亚洲精品日韩在线 | 日韩在线一区二区 | 欧美激情一区二区三区 | 夜夜操av| 国产电影一区二区 | 99久久婷婷国产综合精品电影 | 欧美久久精品一级黑人c片 91免费在线视频 |