如何在将数据从 MSSQL 导出到列分隔符为“,”的平面文件 (CSV) 时保留数据逗号“,”

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

我正在尝试将数据从 SQL 数据库导出到平面文件(目标为 CSV)以进行迁移。我面临的问题是在我的内容文本中保留逗号(,)。例如FruitsGroup 列包含(Apple、Mango 和 Orange),但 CSV 正在创建逗号分隔值的分割并弄乱列的排列。如何在单个备注栏中获得相同的数据。

我期待 csv 文件中的数据(见下文)。在更改分隔符时有“”的解决方案,但我不想使用它。 这是在我的数据库中,它也必须反映在我的 csv 文件中

身份证 水果集团
1 苹果、芒果和橙子
2 苹果、芒果、橙子、猕猴桃

下面是我在 csv 中得到的错误数据示例:

身份证 水果集团
1 苹果
芒果和橙子 2
苹果 芒果
橙色 猕猴桃
sql-server ssis migration
1个回答
0
投票

这里有 2 个解决方案:

  1. 将文件的分隔符更改为逗号以外的其他内容
  2. 为您的文件定义一个文本限定符,以便您的值包含在所述限定符中

要更改分隔符,请打开平面文件连接管理器,打开“列”窗格,然后将“列分隔符”更改为数据中不会出现的内容。如果您已经正确定义了列,则不要重置它们。这将产生如下所示的数据集(我使用管道 (

|
) 作为分隔符):

ID|Remarks
1|Apple,Mango and Orange
2|Apple,Mango,Orange,Kiwi

否则,您可以通过文本方式限定您的数据。再次打开平面文件连接管理器,然后在“常规”窗格中为文本限定符输入一个字符,例如双引号 (

"
)。然后,这将生成一个如下文件:

"ID","Remarks"
"1","Apple,Mango and Orange"
"2","Apple,Mango,Orange,Kiwi"

如果您不希望特定列具有文本限定符,则必须在高级窗格中将该列的 TextQualified 属性设置为 False。将 ID 的 TextQualified 属性更改为 False 会产生以下结果:

ID,"Remarks"
1,"Apple,Mango and Orange"
2,"Apple,Mango,Orange,Kiwi"
© www.soinside.com 2019 - 2024. All rights reserved.