2016-12-01 32 views
1

私はSSISパッケージを持っています。その中には、2つのExecute Package Task要素があります。 2つのパッケージは、順番に実行するようにリンクされています。SSISパッケージエラー - BULK INSERT "ファイルが存在しません"

パッケージ1 - 外部のサイトからダウンロードしたCSVファイル(SalesForce.com)

E:\ SalesForceの\ MSSQL_Import \ PricebookEntry.csv

E:マップされたネットワークドライブです。

パッケージ2つのSQLタスクが空のテーブルにCSVファイルの内容を挿入します。二SSISパッケージがトリガされたとき、私は次のエラーを取得しています

BULK INSERT SalesForce.dbo.PriceBookEntry 
FROM 'E:\SalesForce\MSSQL_Import\PricebookEntry.csv' 
WITH 
(
FIRSTROW = 2, 
FIELDTERMINATOR = '\t', 
ROWTERMINATOR = '\n', 
CODEPAGE = 'ACP',  
ERRORFILE = 'E:\SalesForce\Data_Loader\Logs\Error\Bulk_Insert\BI_PriceBookEntry.csv', 
TABLOCK 
) 

[Execute SQL Task] Error: Executing the query "BULK INSERT SalesForce.dbo.PriceBookEntry FROM..." failed with the following error: "Cannot bulk load. The file "E:\SalesForce\MSSQL_Import\PricebookEntry.csv" does not exist.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

私は、ファイルの場所を確認しています。パスとスペルは良いです。このファイルは、スクリプトの実行中に存在します。

私はファイルをCに保存しようとしましたが、確認するだけです。 BULK INSERTパッケージはまだ失敗します。

管理スタジオでBULKクエリをコマンドとして実行しても問題ありません。

パッケージを別のパッケージ内で連鎖すると、BULK INSERTは失敗します。個別にSSISパッケージを実行すると、正常に動作します。

私は同じことをして動作する他のSSISパッケージを持っています。

私は可能な解決策のために高値と低値を探していますが、まだ何もありません。誰でも問題の可能性について何か考えがありますか?

+1

「E:マップされたネットワークドライブ」通常、根本的な原因は、SSISパッケージを実行しているアカウントには、それを開発したユーザーと同じドライブがマップされていないということです。 Cドライブに置いたときに動作しないという事実は、それが許可の問題かもしれないと私に信じさせます。あなたはこれを他の場所でも指定していますが、最初のカットではどこが迷子になったのか分かりません – billinkc

答えて

0

問題が見つかりました。

クイックアンサーは、SSISでBULK INSERTコマンドが実行される前にダウンロードされているCSVファイルが完了していないことです。したがって、SQL Serverはファイルにアクセスできません。

以前のジョブは非常に小さいファイル(2000行程度)でしか動作しませんでした。この仕事は、より多くの仕事をしています(〜1ミル線)。

解決方法は、ファイルのダウンロードが完了するまでBULK INSERTを押し続けることです。

関連する問題