我创建了一个执行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.
对此的任何指导都非常感谢....我完全陷入困境!!!!
由于
答案 0 :(得分:1)
错误显示“字符串或二进制数据将被截断”。运行manualy时脚本工作的原因是因为您只是尝试插入一个值。该值在列的长度约束范围内。
当您运行任务时,它会循环遍历文件名列表并尝试插入每个文件名。其中一个名称对于您尝试将其插入的字段来说太长。
您需要在SQL中更改字段的长度,或者您需要在文件名本身上使用LEFT(文件名,xx),以便只将第一个xx字符插入到表中。 (将xx更改为要插入的字符数)