SSIS设置目标表名称

SSIS设置目标表名称,ssis,Ssis,我有一个SSIS包,需要通过oledb组件将数据加载到一个直到运行时才知道名称的表中。在oledb目标编辑器中,我选择“数据访问模式”作为“表名或视图名变量”。我已经输入了保存表名的“变量名”。当我点击预览按钮时,我看到了正确表格的预览。但是,当我尝试运行/调试包时,我在验证阶段(甚至在包尝试运行之前)收到以下消息: Information: 0x4004300A at Check Recs and Insert, DTS.Pipeline: Validation phase is beginn

我有一个SSIS包,需要通过oledb组件将数据加载到一个直到运行时才知道名称的表中。在oledb目标编辑器中,我选择“数据访问模式”作为“表名或视图名变量”。我已经输入了保存表名的“变量名”。当我点击预览按钮时,我看到了正确表格的预览。但是,当我尝试运行/调试包时,我在验证阶段(甚至在包尝试运行之前)收到以下消息:

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.

它表示未提供目标表名。但它提供了!有人遇到过类似的问题吗?

是否将变量设置为默认值?查看本文:

数据采用什么编程格式?我今天在尝试从Excel电子表格导入数据时遇到了类似的问题。事实证明,电子表格的名称中有一个“”(物理空白)。SSIS对此不太满意。但不管出于什么原因,在我用一个(下划线)替换空白后,问题自行解决了

至于原因,我猜某些字符通常应该避免出现在标题中,比如空格或连字符。除空格外,可能还有其他字符会出现类似错误(连字符?)

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

  • 我给了变量一个默认值。我的问题与msdn线程中给出的问题不同。在我的例子中,问题只出现在运行时。变量填充在“控制流”中,但我已将作用域设置为包操作系统的作用域,我猜它应该从“数据流”中可见?如果将作用域设置为包级别,则应通过整个包控制流、数据流、事件处理程序识别变量中的值,等等。也许可以尝试从头开始创建一个全新的包,看看这是否能解决您的问题?我从未遇到过与您在过去所做的事情完全相同的问题……您是否尝试将延迟验证属性设置为“TRUE”并运行包?因为,您正在动态地传递目标表。