批量插入带有Unicode字符的单列平面文件“截断”一行

时间:2016-09-13 20:24:12

标签: sql-server

我有以下问题。我有一个包含多行1400个字符的平面文件。我将此文件的BULK INSERT运行到一个包含单个nvarchar(1400)列的表中。

声明如下:

BULK INSERT tempTable
FROM 'path\file' 
WITH (FIELDTERMINATOR= '',ROWTERMINATOR = '\n',MAXERRORS = 0)

运行正常,没有错误。但经过仔细研究,我注意到有一行被“截断”,只有230个字符。

用Sublime打开(大)文件后,我发现这一行被截断了这些特殊字符的外观,如[NUL](括号应该是正方形,这就是我看到它的方式在Sublime)。像

这样的东西
9999999999999 99999999999991000000JOHN DOE    [NUL][NUL][NUL][NUL][NUL][NUL]ABCDE99999999

注意,如果我用记事本打开文件,字符将被空格替换,如下所示:

9999999999999 99999999999991000000JOHN DOE          ABCDE99999999

在任何情况下,有没有办法让批量插入在找到这些字符后继续读取该行,而不是截断它?

由于

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,我们通过使用“SQL Server导入和导出向导”解决了这个问题。在Microsoft SQL Server管理工作室内,打开对象资源管理器并右键单击您的数据库名称。选择选项任务>>导入数据。将打开“新建SQL Server导入和导出向导”窗口。选择Source作为平面文件并浏览平面文件。在“目标”下,选择“Microsoft OLE DB Provider for SQL Server”,提供SQL Server名称和数据库名称。在下一页上,编辑映射(目标表)。希望如此,这将有效。