1

我有一个带有以下格式数据的 csv 文件。

文件:Sample.csv

身份证、姓名、地址

1,Abcd,street1,3rdcross,xxxx

2,Cfre,2ndmain,3rdstreet,yyy

3,Asdf,4thmain,1stcross,zzz

需要将数据加载到如下表中。

表:样本

身份证姓名地址

1 Abcd street1,3rdcross,xxxx

2 Cfre 2ndmain,3rdstreet,yyy

3 Asdf 4thmain,1stcross,zzz

如何使用 SSIS 实现这一目标?

如果我们使用逗号分隔符,那么地址列将分成 3 列。

4

3 回答 3

1

如果您的数据始终为 5 列,但标题不是,则跳过第 1 行并根据需要命名列。

可能:

Id,Name,Address,Directions,[Blah]

如果您真的想将它们放回","您所说的分隔字段中,则使用派生列并连接。

new column = Address + "," + Directions + "," + [Blah]
于 2017-08-02T14:08:13.333 回答
1

最初,当 Text Qualifier 设置为 none 时,列是分开的。

在此处输入图像描述

当将文本限定符更改为双引号时,它就完美了。

在此处输入图像描述

于 2017-08-02T05:34:16.367 回答
0

这可以通过以下步骤从派生列转换中完成:

  1. 在平面文件连接管理器中,选择格式为 Ragged Right 且不带分隔符。所以你的数据将在一列中出现
  2. 选择派生列转换。使用下面提到的公式在此转换中创建 3 列:

    ID - SUBSTRING([Id,Name,Address],1,FINDSTRING([Id,Name,Address],",",1) - 1)
    
    Name - SUBSTRING([Id,Name,Address],FINDSTRING([Id,Name,Address],",",1) + 1,FINDSTRING([Id,Name,Address],",",2) - FINDSTRING([Id,Name,Address],",",1) - 1)
    
    Address - SUBSTRING([Id,Name,Address],FINDSTRING([Id,Name,Address],",",3) + 1,LEN([Id,Name,Address]))
    

这就是您如何从文本文件中获取三个单独的列的方法。

于 2017-08-10T10:53:14.767 回答