Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssis 如何在平面文件连接管理器上重新配置列信息?_Ssis_Etl_Dataflow - Fatal编程技术网

Ssis 如何在平面文件连接管理器上重新配置列信息?

Ssis 如何在平面文件连接管理器上重新配置列信息?,ssis,etl,dataflow,Ssis,Etl,Dataflow,我有一个平面文件源,它从平面文件读取数据。我们最近在这个平面文件中添加了一个新列 平面文件数据将插入到数据库表中。为了适应目标组件中的新字段,我使用altertable语句将新列添加到表中。这是我所做的唯一改变 平面文件和目标组件之间的映射是否应自动更改?在SSIS包的任何地方,我都看不到平面文件中存在的附加列 如何在SSIS包中配置平面文件中的附加列,以便平面文件源可以将数据传递到目标组件?当您更改基础组件(如平面文件或数据库)的元数据时,SSIS不会自动刷新所有可用列。您必须手动执行此操作

我有一个平面文件源,它从平面文件读取数据。我们最近在这个平面文件中添加了一个新列

平面文件数据将插入到数据库表中。为了适应目标组件中的新字段,我使用
altertable
语句将新列添加到表中。这是我所做的唯一改变

平面文件和目标组件之间的映射是否应自动更改?在SSIS包的任何地方,我都看不到平面文件中存在的附加列


如何在SSIS包中配置平面文件中的附加列,以便平面文件源可以将数据传递到目标组件?

当您更改基础组件(如平面文件或数据库)的元数据时,SSIS不会自动刷新所有可用列。您必须手动执行此操作

  • 打开源组件的编辑器并导航到“Columns”属性(在左侧),并验证平面文件中的所有外部列都在那里并且被选为输出列
  • 对目标组件的映射属性窗口重复此过程。验证所有平面文件列是否映射到正确的目标列

  • 如果向平面文件中添加了新列,则需要更新平面文件连接管理器以反映新的更改。平面文件连接管理器将出现在软件包底部的
    连接管理器
    选项卡下

    使用SSIS 2012演示的示例场景: 假设您有一个平面文件,其中包含StateCode和StateName列

    当您配置平面文件连接管理器时,您将看到在“高级”选项卡页面下配置的这些列,如下所示

    如果修改平面文件以添加其他列,例如添加名为CountryCode的新列

    平面文件连接管理器将不包含新的列定义。您需要打开平面文件连接管理器以添加新列,也可以删除平面文件连接管理器并使用新的平面文件列定义创建一个新的平面文件连接管理器

    您需要单击“新建”并选择适当的选项以插入列。不能移动列位置。因此,请确保选择了正确的选项来添加列。设置适当的属性以定义列

    修改源或目标架构时,将影响数据流任务中的源和目标组件。您可能会在组件上看到如下所示的警告图标,因为该组件与其关联的连接管理器的元数据信息不同步

    双击显示警告的组件,然后在编辑器上单击“确定”以解决映射问题


    希望这会有所帮助。

    更新平面文件源中的列的最简单方法是重置平面文件连接中的列

  • 从连接管理器打开平面文件连接
  • 选择列(在“常规”下面)
  • 单击“重置列”-这将包括任何新列

  • 当然,如果您对数据类型进行了自定义更改等,您需要小心。

    谢谢Kyle!平面文件有额外的列。我在数据库的表中添加了Alter,Alter是我的目标。但我在ETL的源端(平面文件)中看不到该列。我如何在ETL中添加那个额外的列,以便可以与目的地进行映射?非常感谢Siva的帮助。我还有一个问题。当我尝试将列分隔符更改为竖线时,它会给我一个错误,即行消除器不能与列分隔符相同。我想把它改成竖条。我该怎么办?