【问题标题】:SSIS Set Destination Table NameSSIS 设置目标表名称
【发布时间】:2017-12-02 15:32:19
【问题描述】:

我有一个 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.

上面写着A destination table name has not been provided.,但它有!有没有人遇到过类似的问题?

【问题讨论】:

  • 您是否尝试过将延迟验证属性设置为“TRUE”并运行包?因为,您正在动态传递目标表。

标签: ssis


【解决方案1】:

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

至于为什么,我的猜测是某些字符通常应该在标题中避免使用,例如空格或连字符。除了空格之外,可能还有其他字符会产生类似的错误(连字符?)。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我已经给变量一个默认值。我的问题与 msdn 线程中给出的问题不同。就我而言,问题仅出现在运行时。该变量填充在“控制流”中,但我已将范围设置为包操作系统的范围,我猜它应该从“数据流”中可见?
    • 如果将范围设置为包级别,那么变量中的值应该在整个包控制流、数据流、事件处理程序等中被识别。也许尝试创建一个全新的包从头开始,看看是否可以解决您的问题?我在做你过去做的事情时从来没有遇到过问题......
    【解决方案3】:
    1. 确保变量名称具有默认值,并且与 Excel 工作簿中的第一个工作表名称匹配。 SSIS 需要在设计时加载第一个工作表,您不能跳过此验证。
    2. 工作表名称中的空格或特殊字符不会影响功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 2014-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-14
      相关资源
      最近更新 更多