2010-01-05 41 views
0

我有一个SSIS包,需要通过一个oledb组件加载数据到一个表,该表的名字直到运行时才知道。在oledb目标编辑器中,我选择了“数据访问模式”作为“表名或视图名称变量”。我输入了我的“变量名称”,它包含表格的名称。当我点击预览按钮时,会显示正确表格的预览。然而,当我尝试运行/调试包我收到以下消息在审定阶段 - 前包甚至试图运行:SSIS设置目标表名称

Information: 0x4004300A at Check Recs and Insert, DTS.Pipeline: Validation phase is beginning. 

Error: 0xC0202042 at Check Recs and Insert, Insert Into TransactionX table [2269]: A destination table name has not been provided. 
Error: 0xC004706B at Check Recs and Insert, DTS.Pipeline: "component "Insert Into TransactionX table" (2269)" failed validation and returned validation status "VS_ISBROKEN". 
Error: 0xC004700C at Check Recs and Insert, DTS.Pipeline: One or more component failed validation. 
Error: 0xC0024107 at Check Recs and Insert: There were errors during task validation. 
SSIS package "PointsPartnerImport.dtsx" finished: Failure. 

它说A destination table name has not been provided.但它有!有没有人有类似的问题?

+0

您是否试过将延迟验证属性设置为“TRUE”并运行包?因为你的动态传递目标表。 – Gowdhaman008 2014-01-17 07:04:35

回答

0

你是否将变量设置为默认值?检查这篇文章:msdn thread

+0

我给了变量一个默认值。我的问题与msdn线程中给出的不一样。在我的情况下,问题只出现在运行时。该变量填充在“控制流”中,但我已将范围设置为包的os,我猜它应该从“数据流”中可见? – 2010-01-08 10:21:24

+0

如果将范围设置为包级别,则应通过整个包控制流,数据流,事件处理程序等来识别变量中的值。也许尝试从头开始创建一个全新的包,并查看是否修复你的问题?我从来没有遇到与过去一样的事情...... – rfonn 2010-01-08 13:53:16

2

什么编程格式的数据?今天我有一个类似的问题,试图从Excel电子表格导入数据。事实证明,电子表格的名称中有一个“(物理空白空间)”。 SSIS对此并不太高兴。但是,无论出于何种原因,在我用_(下划线)替换该空白之后,问题自行解决。至于为什么,我的猜测是某些字符通常应避免在诸如空格或连字符之类的标题中。除了出现类似错误(连字符?)的空格之外,可能还有字符。

0
  1. 确保变量名称具有默认值,并且它与Excel工作簿中的第一个工作表名称匹配。 SSIS需要在设计时加载第一个工作表,您不能跳过此验证。
  2. 工作表名称中的空格或特殊字符不会影响功能。