0

誰でもこのタスクを実行するための最良の方法を教えてください。スクリプトを自分用に作成する必要はありません (学習するのが好きです) 問題にアプローチするための最良の方法となるポインターが必要なだけです。

タイトルが付けられたカタログ内の各製品の xml ファイルをダウンロードします ( ProdId.xml)

SQL Server 2008 テーブル製品から製品 ID のリストを取得します。現在、それらをExcelに入れ、ファイルのソースのフルパスとユーザー名とパスワードを使用して、各ファイルの前にwgetステートメントを配置しています。

例えば

wget website/xmlfiles/prodid.xml – username – password

そして、私はこれをすべてのファイルに対して行います。

プロセスを自動化したいので、すべての製品 ID のチェックを毎日抽出して、ファイルが既に存在するかどうかを確認し、そうでない場合は Web サイトから収集します。

どうすればいいですか?

4

2 に答える 2

0

これを実行するために、 SQL Server Integration Services または SSISパッケージの作成を検討することをお勧めします。SSIS は、データの抽出、変換、および読み込みに使用できます。

SSIS に関するオンラインのチュートリアルは多数あります。ここにいくつかあります:

MS SQL のヒント - SQL Server Integration Services (SSIS)

SSIS チュートリアル: SQL Server 2005 Integration Services チュートリアル

SSIS チュートリアル: シンプルな ETL パッケージの作成

于 2012-07-03T12:04:54.800 に答える
0

最後にこのスクリプトを使用しました

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
于 2012-07-04T11:51:18.687 に答える