将csv文件导入oracle数据库
最近和XX单位进行一个项目的开发工作,对方的工作方式真让人不敢恭维,就定期提供个文件都话语多多,没法子我方只能定期从其远程服务器检测,并提取倒库了,借此将csv文件数据导入oracle的脚本贴出来,免得忘了这东西都是咋来的。
因具体原因,此脚本并没有实现全部自动化:
首先是,提取CSV文件的脚本:
 View Code
View Code 
#!/bin/sh - #######首先提取一卡三号国际费率$1参数为文件名 echo "open xx.xxx.x.xxx user xxx xxx binary cd /RateTable/ get $1 1c3h_gjj_fee/$1 bye" | ftp -n #######组装入表新文件 cd /home/effort/1c3h_gjj_fee cat $1 |awk -v startdate=$2 -v enddate=$3 -F, 'BEGIN{OFS=","} \ {sub(/[\r\n]/, "", $4); if($1 != "Rate_DESC" && $2 != 86 && $2 != 852){ print $1, (0""0""$2), $4, startdate, enddate > "/home/effort/1c3h_gjj_fee2/1c3h_gjj_fee.csv" } }' #######csv文件入库 sqlldr userid=settle/settle@amaxchange control='/home/effort/csv_data.ctl' log=log.txt bad=bad.txt
其次,ctl配置文件:
 View Code
View Code 
load data infile '/home/effort/1c3h_gjj_fee2/1c3h_gjj_fee.csv' append into table TP_SETTLE_FEE_GJJ_1C3H fields terminated by ',' OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS ( settle_obj, settle_code, settle_fee, start_time, end_time )
上述脚本的执行:sh gjj_fee.sh IDD_RateTable_201212.csv 20121201 20121231
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号