如何在数据源中解析具有相同名称的多个列?

时间:2013-11-01 18:37:10

标签: ssis

我正在使用SSIS 2008从SQL Server中提取数据,沿途从其他数据库中获取字段,在将输出存储到文本文件之前执行派生列转换字符串和数据转换转换。

在某种程度上,EncounterNumber字段正在重复。从数据转换变换到平面文件目标的输出列元数据显示此字段两次。我在尝试将字段映射到单元时遇到的错误如下:

Error at Data Flow Task [Flat File Destination [44524]]: There is more than one data    
source column with the name "Encounter Number".  The data source column names must be 
unique.

(Microsoft Visual Studio)


===================================

Exception from HRESULT: 0xC0207015 (Microsoft.SqlServer.DTSPipelineWrap)

------------------------------
Program Location:

at 
Microsoft.SqlServer.Dts.Pipeline.Wrapper.CManagedComponentWrapperClass.
ReinitializeMetaData()
at 
Microsoft.DataTransformationServices.DataFlowUI.
DataFlowComponentUI.ReinitializeMetadata()
at 
Microsoft.DataTransformationServices.DataFlowUI.FlatFileDestinationUI.conn
Page_SaveConnectionAttributes(Object sender, FlatFileConnectionAttributesEventArgs   
args)

是否有错误输出或其他方式处理重复的Encounter字段,以便字段可以映射到我的平面文件目的地?

更新:这是数据流的屏幕截图: enter image description here

数据转换的元数据如下:

"Name"  "Data Type" "Precision" "Scale" "Length"    "Code Page"   
"Encounter Number"  "DT_STR"    "0" "0" "20"    "1252"  "0" ""    
"OLE DB Source"
"Encounter Number"  "DT_WSTR"   "0" "0" "20"    "0" "0" ""    
"Data Conversion"

如何删除遭遇号码的数据转换或OLE DB源版本?这是某个地方吗?

2 个答案:

答案 0 :(得分:2)

如果源文件中有两个具有相同名称的列,则可以在连接管理器中更改该列,例如,如果源文件是文本或csv,则在平面文件连接管理器中,在高级选项卡中,您可以更改列的名称并加载数据。如果源文件中的两个不同列具有相同的列名,则此方法将起作用。

答案 1 :(得分:1)

不,但找到两个同时将Encounter作为列名并更改其中一个以返回不同列名的查询应该不难。