[英]Retrieving remote files based on data from table and whether they exist locally using SQL Server 2008
任何人都可以告诉我执行此任务的最佳方法,我不希望为我写的脚本(我喜欢学习),我只需要一个指针即可,这是解决问题的最佳方法,
我为目录中的每个产品下载了名为( ProdId.xml
)的xml文件。
我从SQL Server 2008表产品中获得了产品ID的列表。 目前,将它们放入Excel并在每个文件之前放置wget语句,并提供完整路径以及用户文件源的用户名和密码。
例如
wget website/xmlfiles/prodid.xml – username – password
我会为每个文件执行此操作。
我想自动化该过程,因此每天提取所有产品ID的检查信息,以查看文件是否已存在,然后从网站上收集该文件。
我该怎么做?
我建议您考虑编写一个SQL Server Integration Services或SSIS包来为您执行此操作。 SSIS可用于数据提取,转换和加载。
在线上有很多关于SSIS的教程。 这里有一些:
最后使用了这个脚本
DECLARE @Product_ID INT
DECLARE Product CURSOR
FOR SELECT Product_ID
FROM dbo.table
OPEN Product
declare @Paths varchar(128) ,
@FileName varchar(128),
@FileExtension varchar(128)
FETCH NEXT FROM Product
INTO @Product_ID
WHILE @@FETCH_STATUS = 0
BEGIN
select @Paths = 'C:\Data\xmls\' ,
@FileExtension = '.xml',
@FileName = @Product_ID
declare @objFSys int
declare @i int
declare @File varchar(1000)
select @File = @Paths + @FileName + @FileExtension
exec sp_OACreate 'Scripting.FileSystemObject', @objFSys out
exec sp_OAMethod @objFSys, 'FileExists', @i out, @File
if @i = 1
print 'Allready There ' + CONVERT(VARCHAR(36), @Product_ID)
else
PRINT 'Neet to get ' + CONVERT(VARCHAR(36), @Product_ID) + '.xml From Source.'
FETCH NEXT FROM Product
INTO @Product_ID
exec sp_OADestroy @objFSys
END
CLOSE Product
DEALLOCATE Product
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.