00001.Shell數據割接_導記錄入庫

1.目錄規劃:

oracle@mdsp140:~/convertdata> pwd
/opt/oracle/convertdata    //用於存放源數據、目標數據、轉換腳本、導庫腳本;
oracle@mdsp140:~/convertdata> ll
total 8
-rwxrwxrwx 1 oracle oinstall 397 2011-09-29 10:58 converter.sh //轉換腳本,用於掃描源數據,提取符合規則的數據;
drwxrwxrwx 2 oracle oinstall  80 2011-09-29 10:49 source //源數據目錄,用以存放待處理的數據;
-rwxrwxrwx 1 oracle oinstall 139 2011-09-29 10:47 sqlldr.ctl //導庫腳本,該腳本由oracle自帶的sqlldr工具,將ctl文件,導入庫中;
drwxrwxrwx 2 oracle oinstall  80 2011-09-29 11:18 target //存放經過轉換後的數據,作爲導庫腳本的數據源;

2.源數據設定:

oracle@mdsp140:~/convertdata/source> pwd
/opt/oracle/convertdata/source
oracle@mdsp140:~/convertdata/source> ls
data_sub.txt
oracle@mdsp140:~/convertdata/source> tail data_sub.txt
2,610010200845081,22365000081,0,-1,-1,NONGPRS,0,0,0,0,0,0,0,NO,NO,0,0,NOBPOS,BOTH  //一行源數據


3.轉換腳本:

oracle@mdsp140:~/convertdata> cat converter.sh
#!/bin/ksh
awk -F \, '{
    if (match($1, "[0-9]+"))
        {
        field1 = $1;
        field2 = $2;
        field3 = $3;
        printf("%s|%s|%s\n", field1, field2, field3);
    }

}' ./source/*  >> ./target/result.dat

//如果在windows下編寫該文件,上傳後,出現"^M"提示時,可用以下指領,進行文件過濾;

oracle@mdsp140:~/convertdata>cat  -v converter.sh | tr -d "^M" > converter.sh 

4.轉換後生成的數據文件

oracle@mdsp140:~/convertdata/target> ls
result.dat
oracle@mdsp140:~/convertdata/target> tail result.dat
2|610010200845081|22365000081

5.導庫腳本  sqlldr.ctl

load data
infile "./target/result.dat"
append into table  import_temp
fields terminated by "|"
trailing nullcols

(HLR_INDEX,IMSI,MSISDN)

6. 創建數據庫用戶MDSP

7.創建導入的表:

   create table import_temp (

                   HLR_INDEX varchar2(50),

                   IMSI varchar2(50),

                   MSISDN varchar2(50))

8.執行導庫指令,導庫;

  //該步驟,應在與ctl文件同級目錄,執行,且當前系統用戶爲oracle

   sqlldr userid=mdsp/mdsp control=./sqlldr.ctl

  也可用這種格式:

  sqlplus mdsp/mdsp@本地命名 control=./sqlldr.ctl  //本地命名服務,需要手動進行配置;

 


  

 


 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章