执行SQL任务在SSIS 2008程序包中失败,但在程序包外部成功运行

时间:2013-01-02 16:25:38

标签: sql ssis

我创建了一个执行sql任务,将Foreach循环任务中遇到的文件名保存到数据库表中, 当我运行单个任务并将文件名写入数据库表时,这工作正常(见下文) 无法发布当前图像 ![任务成功运行] [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.

对此的任何指导都非常感谢....我完全陷入困境!!!!

由于

1 个答案:

答案 0 :(得分:1)

错误显示“字符串或二进制数据将被截断”。运行manualy时脚本工作的原因是因为您只是尝试插入一个值。该值在列的长度约束范围内。

当您运行任务时,它会循环遍历文件名列表并尝试插入每个文件名。其中一个名称对于您尝试将其插入的字段来说太长。

您需要在SQL中更改字段的长度,或者您需要在文件名本身上使用LEFT(文件名,xx),以便只将第一个xx字符插入到表中。 (将xx更改为要插入的字符数)