0

Foreach ループ タスクで検出されたファイル名をデータベース テーブルに保存する SQL 実行タスクを作成しました。これは、個々のタスクを実行すると正常に機能し、ファイル名がデータベース テーブルに書き込まれます (以下を参照)。 [タスクが正常に実行されました][1] ただし、完全な SSIS パッケージを実行すると、このタスクは失敗します (以下を参照) 現在、画像を投稿できません

![失敗した実行][2] 表示されるエラー メッセージは次のとおりです。

Error: String or binary data would be truncated.
[Execute SQL Task] Error: Executing the query "insert into filename_staging_table
(FileName) Val..." failed with the following error: 
"The statement has been terminated.". Possible
failure reasons: Problems with the query,
"ResultSet" property not set correctly, parameters
not set correctly,
or connection not established correctly.

これに関するガイダンスは大歓迎です....私は完全に立ち往生しています!!!!

ありがとう

4

1 に答える 1

1

エラーには、「文字列またはバイナリ データが切り捨てられます」と表示されます。手動で実行するとスクリプトが機能する理由は、値を 1 つだけ挿入しようとしているからです。その値は、列の長さの制約内にあります。

タスクを実行すると、ファイル名のリストをループして、それぞれを挿入しようとします。これらの名前の 1 つは、挿入しようとしているフィールドには長すぎます。

SQL でフィールドの長さを変更するか、ファイル名自体に LEFT(filename, xx) を使用して、最初の xx 文字のみがテーブルに挿入されるようにする必要があります。(xxは挿入する文字数に置き換えてください)

于 2013-01-02T22:24:08.830 に答える