在项目开始时,我使用Scope size Package
创建了3个变量:
然后我创建了一个SQL EXECUTE TASK
:
在SQL SERVER上检查此查询返回:
将EXCEL源设置为将获取文件位置的变量:
现在在SSIS,我检查了两种方式 64位调试为true和false。但是当其为假时,其余的执行工作,因此我将其更改为false并保存它。
这是项目流程:
每当我执行时,它都会给我这个错误:
如何解决此错误。这花了我一整天,但我仍然无能为力。我是SSIS的新手。将不胜感激。
编辑:
请参阅SQL EXECUTE TASK
的结果集:
答案 0 :(得分:5)
我注意到DelayValidation
中的False
为Excel Connection String
。
您必须为DelayValidation=TRUE
和使用Excel连接的Excel Connection String
设置Data Flow Task
。
希望这会帮助你。
答案 1 :(得分:4)
经过多次努力,我已经解决了这个问题,但我非常感谢那些给我一些关于这个工具的额外知识的人,他们的一些指导必须在某些方面起作用,因为我设置了我的相应的事情。
我最后做了什么,让它工作和运行的是:
1)在包属性中,在Execution
下设置DelayValidation
到True
。之后:
(上面,Viki通过将属性DelayValidation
设置为True
来帮助我,但在Excel Connection Manager
中将其设置为重要。)
答案 2 :(得分:3)
在表达式(或其中任何部分)中构建 ExcelFilePath 时,请确保"组合"变量包含到达文件的完整路径,否则您将无法打开excel源,因为它找不到文件。(在运行时应该没问题。)
其次可能是原始文件中使用的值在"新文件/下一个文件"中不一样。意思是excel想要将列从Unicode转换为双精度浮点数等。
尝试在属性窗口的ConnectionString中添加它。
IMEX = 1
喜欢" *; HDR = YES; IMEX = 1 &#34 ;;
这可能有助于这些类型的混合列,其中包含数字和alpha值(导致转换问题)。
HTH