无法从OLE DB提供程序"BULK"获取链接服务器"(null)"的行

Esp*_*eie 18 database csv bulk

我尝试使用大小为1.4 GB的.csv文件中的大量数据加载我的数据库.但是当我尝试运行我的代码时,我会遇到错误.

这是我的代码:

USE [Intradata NYSE] 
GO
CREATE TABLE CSVTest1
(Ticker varchar(10) NULL,
dateval date NULL,
timevale time(0) NULL,
Openval varchar(10) NULL,
Highval varchar(10) NULL,
Lowval varchar(10) NULL,
Closeval varchar(10) NULL,
Volume varchar(10) NULL
)
GO

BULK
INSERT CSVTest1
FROM 'c:\intramerge.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO
--Check the content of the table.
SELECT *
FROM CSVTest1
GO
--Drop the table to clean up database.
DROP TABLE CSVTest1
GO
Run Code Online (Sandbox Code Playgroud)

我尝试建立一个包含大量库存报价的数据库.但我收到此错误消息:

消息4832,级别16,状态1,行2批量加载:在数据文件中遇到意外的文件结尾.消息7399,级别16,状态1,行2链接服务器"(null)"的OLE DB提供程序"BULK"报告错误.提供商未提供有关错误的任何信息.消息7330,级别16,状态2,行2无法从OLE DB提供程序"BULK"获取链接服务器"(null)"的行

我不太了解SQL,但我希望能抓到一两件事.希望有人看到可能非常明显的东西.

sta*_*kos 14

复活一个旧问题,但万一这会帮助其他人:经过多次试错,我终于(终于!)能够通过改变这个来摆脱这个错误:

ROWTERMINATOR = '\n'
Run Code Online (Sandbox Code Playgroud)

对此:

ROWTERMINATOR = '0x0A'
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用。我也建议在CMD中运行`more`命令来检查较大文件的末尾是否有页脚或问题。如果您执行“更多+ n [文件名]”,则CMD将在“ n”之后显示所有行,使用此命令检查文件末尾附近的内容。 (2认同)

Ani*_*r C 12

我有同样的问题.

解:

验证文本编辑器中的CSV或文本文件,如记事本+.最后一行可能不完整.去掉它.


Tim*_*dge 7

当我在CSV中有不同数量的分隔字段而不是我在表格中的列时,我得到了同样的错误.检查您是否拥有正确数量的字段intramerge.csv.


Con*_*ngo 7

这是我的解决方案:放弃。

我总是最终使用 SSMS 和[ Tasks > Import Data ].

从来没有设法使用此方法导入真实世界的 .csv 文件。这是一个完全无用的函数,仅适用于现实世界中不存在的原始数据集。也许我从来没有运气,因为我处理的数据集非常混乱并且是由第三方生成的。

如果出错了,它也不会给出任何原因。微软,你在这方面的无能让我感到难过。

微软,也许会添加一些错误消息,所以它会说明为什么拒绝它?哪一行失败了?哪一列失败了?如果隐藏失败的原因,几乎不可能解决问题!