【问题标题】:Source Table Structure Changes in SSIS Data SourceSSIS 数据源中的源表结构更改
【发布时间】:2012-07-24 20:37:22
【问题描述】:

我正在使用 SSIS 将 FoxPro 表导入 SQL Server 2008。源数据是我无法控制的专有数据库。调用我正在导入客户的表。

有时,客户的结构如下所示:

ID(整数)

NAME (char(30))

地址 (char(30))

城市 (char(20))

状态(字符(2))

ZIP (char(10))

CCNUM (char(16))

其他时候,它看起来像这样:

ID(整数)

NAME (char(30))

地址 (char(30))

城市 (char(20))

状态(字符(2))

ZIP (char(10))

CCPTR (char(100))

这个专有数据库基本上有2个不同版本的数据库。旧版本有一个名为 CCNUM(信用卡号)的字段,它是一个基本的 16 个字符字段。较新的版本将该字段替换为一个名为 CCPTR 的字段,这是一个 100 个字符的字段,表示一个卡指针(实际信用卡号的加密值)。

这里的问题是每次我必须在具有这些不同表结构的 2 个数据集之间来回切换时,SSIS 就会崩溃,我必须进入并手动刷新元数据。

我的问题是,我是否可以让 SSIS 在运行时动态查找这些字段之一,并根据存在的字段将正确的数据加载到 SQL 中的正确表结构中?

如果以前有人问过这个问题,请原谅我。我对 SSIS 还是很陌生,我尝试搜索这个答案,但无济于事。

谢谢,

标记

【问题讨论】:

    标签: sql-server-2008 ssis visual-foxpro


    【解决方案1】:

    简短的回答是否定的。 SSIS 预计其源和目标组件的元数据不会发生重大变化。有一些方法可以通过 .NET 以编程方式影响这一点,但这种方式没有抓住重点。

    针对此问题的一个精心设计的解决方案是创建 2 个单独的数据流,将数据复制到共享暂存表中。使用此临时表作为源来转换您的数据并将其推送到其最终数据结构。

    【讨论】:

      【解决方案2】:

      如果您根据长度 (100) 构建包并在 (16) 上调整它,您应该只会收到警告。你有错误吗?

      【讨论】:

        猜你喜欢
        • 2016-08-22
        • 1970-01-01
        • 2015-12-13
        • 2021-01-14
        • 1970-01-01
        • 1970-01-01
        • 2020-01-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多