【发布时间】:2019-09-03 11:16:11
【问题描述】:
我有一个以逗号作为分隔符的平面文件。在一个地址栏中,我有 .我的问题是我的文件中的一个字段包含“,”(逗号),因此在创建文件时它会创建新列,因为该字段是“,”,逗号分隔在列上。有没有办法解决这个问题而不必删除我文件中的逗号(我已经尝试过并且有效)?
例子:
store_name , phone , email , street , city , state , zip_code
Santa , (831) 476-4322 , santacruz@bikes.shop1 , 3700, Portola Drive1 , Santa Cruz1 , CA1 , 950601
Baldwin1 Bikes , (516) 379-8883 , baldwin@bikes.shop1 , 4200 Chestnut Lane1 , Baldwin1 , NY1 , 114321
Rowlett Bikes1 , (972) 530-5545 , rowlett@bikes.shop1 , 8000 Fairway Avenue1 , Rowlett1 , TX1 , 750881
下划线字段主要是造成问题。
【问题讨论】:
-
你的例子不清楚。您需要确保您导入的数据具有“文本限定符”。
-
您的数据有不同数量的列。您的数据需要明确定义才能正确读取。如果您查看标题下的行,您有 8 列,而其他列则有 7 列。
-
这就是为什么我要求数据要么用双引号括起来,要么它们使用竖线 (|) 或波浪号 (~) 分隔符
-
您所拥有的是一些不良数据......第一行的街道地址中有一个逗号。多年来处理了许多街道地址,这并不常见,除非涉及辅助线路或不良数据。不幸的是,坏数据太常见了。处理它的最佳方法是按照@Adirmola 的建议,并使用文本限定符导出数据 - IE,引用文本 - 如果可以的话。如果你不能......你可以做的不是很多。
-
逗号是最差的分隔符。如果可能,请使用不同的分隔符创建此文件。管道或标签是通常的选择。照原样,没有办法分辨什么是有效的逗号,什么不是,除非你总是假设只有最后一个字段有逗号。
标签: sql-server ssis-2012 msbi