使用 SSIS 将数据从 CSV 文件导入数据库时如何处理列中的多余逗号

问题描述 投票:0回答:1

使用 VS2022 SSIS,我尝试从记事本 csv 文件导入数据,数据如下:

CustomerKey, Name, Address, Country
1001, John, 23 Ave,nue, Australia
1002, Jeff, N,23 West St, Norway

等等...

如何将地址栏中的这些逗号替换为空格?

我已经尝试使用 REPLACE(Address,",","") 派生列并将连接管理器文本限定符更改为 " 但没有成功。更改分隔符不是一个可行的选择。

sql visual-studio csv ssis delimiter
1个回答
0
投票

如果您可以以某种方式再次导出数据,则需要在地址周围加上引号。

如果你做不到这一点,并且你仅限于 SQL,你可以尝试这样的事情:

  1. 编辑第一行以包含更多列:
    ID, Name, Address, Address2, Address3, Address4
  2. 导入到已定义所有 6 列的临时表中。
  3. 更新临时表,将
    , 
    前缀添加到定义它们的地址 2、Address3、Address4:
    update temptable SET Address2 = CONCAT(', ', Address2) WHERE Address2 IS NOT NULL
    。对每个地址列进行操作。
  4. 从临时表中插入...SELECT到目标表中,使用类似这样的内容(抱歉,语法是伪代码,不确定 SSIS 的确切语法):
    INSERT INTO mytable (ID, Name, Address) SELECT ID, Name, CONCAT(Address,Address2,Address3,Address4) from temptable
© www.soinside.com 2019 - 2024. All rights reserved.