Bat命令:从Ftp获取文件以及数据导入
Bat命令-->ftp獲取文件,并導入數據庫
?
1.生成ftp命令,放在ftp.txt文件夾中新建一個bat文件(1.createscript.bat)
@echo open 服務器IP >ftp.txt
@echo user 用戶名>>ftp.txt
@echo 密碼>>ftp.txt
@echo get 文件名 data\chargefile.txt>>ftp.txt
@echo bye>>ftp.txt
2.執行第一步生成的命令,下載ftp服務器上的文件到本地,新建一個bat文件(2.downloadlogfile.bat)
ftp -i -n -s:ftp.txt
3.從本地把數據導入到數據庫中,新建一個bat文件(3.importdata.bat)
方法一:利用DTS,(Oracle數據庫/SQL數據庫都支持)
用SQL Server工具生成一個DTS包,保存為“文件系統”(后綴名為:dtsx),配置好后,用bat命令調用導入數據
dtexec /F "D:\transferchargedata.dtsx"
方法二:利用bcp,支持SQL Server數據庫
例子:EXEC master..xp_cmdshell 'bcp Test.dbo._Temp out c:\sss.xls -c -U"sa" -P"maobisheng"' ?--out?為導出到文件,in為從數據庫導入到數據庫中
EXEC master..xp_cmdshell 'bcp?Test.dbo._Temp?out c:\?sss?_%date:~0,10%-%time:~0,2%.txt -c -U"sa" -P"maobisheng"' --文件名動態產生
方法三:利用sqlldr命令,支持Oracle
新建一個后綴名為ctl的文件,如:sqlldr.ctl
load data
infile 'D:\sqlldr\chargefile.txt'
badfile 'D:\sqlldr\chargefile_bad.bad'
discardfile 'D:\sqlldr\chargefile_dsc.dsc'
truncate into table tbgamechargelog
fields terminated by X'09'
(PTID,CHARGEDATETIME,GAMENO,GAMEAREANO,CHARGEAMOUNT)
命令:
sqlldr userid=用戶名/密碼@數據庫名 control=d:\sqlldr\sqlldr.ctl log='D:\sqlldr\logfile\%date:~0,10%-%time:~0,2%-%time:~3,2%-%time:~6,2%.log'
方法四:可以利用LogParser導入數據,支持SQL數據庫
"C:\Program Files\Log Parser 2.2\LogParser.exe" "select * into Test.dbo._Temp from 'D:\2010-01-10 23.log'" -o:sql -database:Test -i:tsv -iCodepage:65001
4.寫一個總的bat文件,調用前三個bat:
call 1.createscript.bat
call 2.downloadlogfile.bat
call 3.importdata.bat
exit
這樣,只要新建一個計劃,調用總的那個Bat命令文件,就能實現每天定時從Ftp文件服務器上拉文件,并把數據導入到數據庫中。
?
?
轉載于:https://www.cnblogs.com/MaoBisheng/archive/2010/03/03/1677150.html
總結
以上是生活随笔為你收集整理的Bat命令:从Ftp获取文件以及数据导入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: phpcms避免字段值重复
- 下一篇: Row_number () over (