您的位置:首页 > 编程语言 > PHP开发

Bat命令:从Ftp获取文件以及数据导入

2010-03-03 13:30 441 查看
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文件服务器上拉文件,并把数据导入到数据库中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐