我知道这里有关于此问题的其他线程,并且没有一个推荐的修复工作正常。我已经验证每条记录末尾的CRLF是十六进制'0D0A'。我可以在vbCrLf上替换VBS并替换它们中的每一个。
以下是制表符分隔文本文件的示例:
01/16/2013 11:00 HS01 DocLast, DocFirst PA-C Occurred ML 11/20/2012 15:31
01/07/2013 09:40 HS01 DocLast, DocFirst PA-C Canceled ML 11/20/2012 15:36 Patient Canceled 20130103-57935
我正在SQL Server 2008中的存储过程中对文本文件执行此代码:
set @sqlcmd = '
BULK INSERT #temp_import_records
FROM ''' + @import_file + '''
WITH
(
ROWTERMINATOR = ''\n''
)'
我正在尝试将此文本插入到包含20列的临时表中。该数据仅有10个字段。使用我的代码,这两个记录都被安装到临时表中的同一记录中。我已经尝试将rowterminator设置为'0D0A'和'0x0A',但它们都没有工作。
我做错了什么?
答案 0 :(得分:1)
\n
字符只是两个字符LF
(0D0A)行终止符的CR+LF
(0A)部分。使用\r
作为第一部分:
ROWTERMINATOR = ''\r\n''
答案 1 :(得分:0)
我建议也像这样逃避终止:
ROWTERMINATOR = ''\\n''
答案 2 :(得分:0)
对于现在登陆此处的任何人,您都可以尝试使用十六进制代码
ROWTERMINATOR = '0x0d0a'
或ROWTERMINATOR = '0x0a'