使用openrowset批量和大文本字段

时间:2016-06-10 08:39:15

标签: sql-server

我有一个大约20列的csv文件(200,000行)。其中一列可以包含大量文本数据。

我尝试用openrowset批量读取csv并使用格式文件。大文本列在格式文件中具有varbinary(max)。

这是我使用的命令:

SELECT * 
FROM OPENROWSET(BULK 'F:\Source.csv', FORMATFILE='F:\Source.fmt', 
                ERRORFILE = 'F:\Bulk_log.txt', FIRSTROW = 2) as t1

在其中一行上我收到以下错误:

  

Msg 4866,Level 16,State 1,Line 4
  批量加载失败。第119426行第4列的数据文件中的列太长。验证是否正确指定了字段终止符和行终止符。

     

Msg 7399,Level 16,State 1,Line 4
  链接服务器“(null)”的OLE DB提供程序“BULK”报告错误。提供商未提供有关错误的任何信息。

     

Msg 7330,Level 16,State 2,Line 4
  无法从OLE DB提供程序“BULK”获取链接服务器“(null)”。

的行

当我查看导致问题的行时,大文本字段有69.339个字节的数据。

使用errorfile选项,它会显示问题从66.367字节开始。

openrowset和bulk是否可以从大字段读取的最大字节数有限制?

奇怪的是;当我将导致问题的行复制到包含单个问题行的单独csv文件时,一切正常.....

我也尝试用SSIS读取数据,一切都运行良好。 但我想坚持使用'基本'SQL服务器(2014),而不是将我的加载方法移到SSIS。

我该如何解决这个问题?

0 个答案:

没有答案