【发布时间】:2013-03-29 06:16:15
【问题描述】:
我使用以下 MS SQL 查询将包含逗号分隔值的文本文件导入 DB:
BULK INSERT logs
FROM 'E:\Sample.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
不幸的是,我的 CSV 文本文件中的一个字段包含如下消息:“UDP 端口 (234,137) 中的问题”,其中包含逗号。因此,数据库将逗号之前的值作为一个字段,并将逗号之后的值插入到下一个字段中(这在逻辑上是不正确的)。结果,后一个字段的合法值在插入表时被丢弃。
希望我的问题得到最好的解释。
任何解决方案来克服这个问题并将整个:“UDP 端口(234,137)中的问题”存储到单个字段中?
【问题讨论】:
-
如何获取 csv 文件?
-
您的 csv 文件中的值是否一致引用?如果没有,那么您可能拥有this problem。 SQL Server 似乎期望文件中的所有值都被引用,或者没有。出于这个原因,我更喜欢使用具有良好 csv 支持的语言(Perl、Python 等)对文件进行预处理,然后生成一个“干净”的 csv 文件进行导入,或者直接生成一个
INSERT脚本。跨度>
标签: sql sql-server sql-server-2005