VS2005プロジェクトからVS2013(パッケージ展開モデル)プロジェクトにアップグレードしたSSISパッケージをテストしています。これは、特定の場所からファイルを1つずつ処理し、それらのファイルに基づいてデータベースを更新するだけの非常にシンプルなパッケージであり、完了すると、結果に基づいてファイルをアーカイブまたは非解析ディレクトリに移動します。そして、私は奇妙なエラーを受け取り、その解決策を見つけることができません。
問題は、パッケージが正常に実行され、パッケージが想定しているとおりに実行される(ファイルからデータを抽出してテーブルに挿入する)ことです。ただし、この操作の一部は、ファイルをアーカイブに移動することです(ファイルシステムタスク)。そして、私はこのエラーを受け取ります "説明:SQL Serverデータツールの外でSSISパッケージを実行するには、ファイルを統合サービスのアーカイブまたはそれ以上にインストールする必要があります。"
2014年のSSDT BIでVS2013を使用し、SSISデザイナーのバージョンは、私の開発テストでdtexecユーティリティと一致しますVM(12.0.2000.8 x64ビット)。以下はCLIからの出力です。
Microsoft (R) SQL Server Execute Package Utility Version 12.0.2000.8 for 64-bit Copyright (C) Microsoft Corporation. All rights reserved.
Started: 10:45:58 AM Progress: 2016-02-11 10:45:59.20 Source: Truncate StagingTable Executing query "TRUNCATE TABLE StagingTable".: 100% complete End Progress Progress: 2016-02-11 10:45:59.25 Source: Insert into Staging Executing query "exec dbo.staging @xml_fileName,NULL,'C...".: 100 % complete End Progress Progress: 2016-02-11 10:45:59.25 Source: Move to MasterXML Executing query "exec dbo.insertXML".: 100% complete End Progress Error: 2016-02-11 10:45:59.25 Code: 0xC000F427 Source: Move File to Archive Description: To run a SSIS package outside of SQL Server Data Tools you must install Move File to Archive of Integration Services or higher. End Error Progress: 2016-02-11 10:45:59.30 Source: Execute SQL get_next_file Executing query "exec get_next_file".: 100% complete End Progress Progress: 2016-02-11 10:45:59.51 Source: Execute SQL notify_users Executing query "exec notify_users".: 100% complete End Progress DTExec: The package execution returned DTSER_SUCCESS (0). Started: 10:45:58 AM Finished: 10:45:59 AM Elapsed: 1.172 seconds
最新の取り組み、このパッケージを実行しようとしている同じマシンにVS2013とSSDT BI for SQL Server 2014をインストールしました。 VSを使用すると、パッケージは正常に実行されますが、次のコマンドを使用してCLIでこのパッケージを実行しようとすると、同じメッセージで失敗します。
"C:\Program Files\Microsoft SQL Server\120\DTS\Binn\dtexec.exe" /f "C:\SSIS\Load_Files.dtsx" /ConfigFile "C:\SSIS\loadFiles_SSIS_Configuration.dtsconfig"
SSISがVS2005からVS2013でどのように機能するかについて何かする必要があると確信していますが、どこを見ればよいのかわかりません。助言がありますか ?
私の場合の問題は、将来の訪問者に何かを見てもらうために、同じマシンに2つの異なるバージョンのSSISをインストールしていたことです。 1つは2005年のもので、もう1つは2014年のものです。奇妙なことに、コマンドで新しいバージョン(投稿の後半に示すように)を明示的に指していても、常に古いバージョンを使用していました。
SQL Server 2014(およびSSIS)だけでクリーンなシステムを作成すると、同じパッケージが問題なく実行されました。そのため、同じマシン上で2つの異なるバージョンのSSISを実行できないような制限があるようです。
SQL Serverをインストールし、Integration Servicesを選択する必要があります。次に、新しいSQLサーバーのインストールフォルダーからDTExec.exe
を実行します。
私の場合、SQL Server 2016 Standard Editionをインストールし、DTExec.exe
は次の場所にありました。
C:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTExec.exe
したがって、新しいコマンドファイル(SQL Server 2016用)は次のようになります。
"C:\Program Files\Microsoft SQL Server\130\DTS\Binn\dtexec.exe" /f "C:\SSIS\Load_Files.dtsx" /ConfigFile "C:\SSIS\loadFiles_SSIS_Configuration.dtsconfig