3

我使用以下 MS SQL 查询将包含逗号分隔值的文本文件导入 DB:

BULK INSERT logs
FROM 'E:\Sample.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)

不幸的是,我的 CSV 文本文件中的一个字段包含如下消息:“UDP 端口(234,137)中的问题”,其中包含逗号。因此,数据库将逗号之前的值作为一个字段,并将逗号之后的值插入到下一个字段中(这在逻辑上是不正确的)。结果,后一个字段的合法值在插入表时被丢弃。

希望我的问题得到最好的解释。

有什么解决方案可以克服这个问题并将整个:“UDP 端口(234,137)中的问题”存储到单个字段中?

4

2 回答 2

0

我更喜欢通过 Microsoft 日志解析器链接运行我的 CSV ,并将其转换为制表符分隔。这样批量插入就可以完美地读取它。

这是关于使用日志解析器链接的一个很好的链接。创建命令以读取 csv 并输出 tsv,然后使用 xp_cmdshell 调用它。

为您省去为各种文件创建格式文件的麻烦。

于 2013-04-07T00:37:50.407 回答
0

您是否尝试过放置其他字段终止符?

于 2013-04-07T11:36:02.280 回答