紧急求助,csv数据导入后部分数据丢失问题,请高手指教,先谢了!

kenny_20050717 2008-11-15 10:00:12
csv表数据内容如下:
id other
12H456 r1
159357 r2
123456 r3
将以上的csv导入数据库新建表后第一行数据没了,原因应该是里面包含了H字符,请问该如何解决呢?先谢了!
...全文
2288 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
kenny_20050717 2008-11-18
  • 打赏
  • 举报
回复
我在导入时选择txt驱动程序能将所有的数据都导进去,但有些文件自动划分列的时候有问题,它将数据也当成列名了,还有就是使用txt驱动导入时只能一个个的导入,不能批量,比较郁闷。。。
那位大侠能救救我呀,小弟万分感谢!
kenny_20050717 2008-11-17
  • 打赏
  • 举报
回复
不行,提示如下:
服务器: 消息 4832,级别 16,状态 1,行 1
大容量插入: 在数据文件中遇到意外的文件结尾 (EOF)。
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'STREAM' 报错。提供程序未给出有关错误的任何信息。
OLE DB 错误跟踪[OLE/DB Provider 'STREAM' IRowset::GetNextRows returned 0x80004005: 提供程序未给出有关错误的任何信息。]。
语句已终止。
kenny_20050717 2008-11-15
  • 打赏
  • 举报
回复
哪位高手知道怎么解决的能否解答一下,在线等,谢谢!
kenny_20050717 2008-11-15
  • 打赏
  • 举报
回复
在数据库右键->所有任务->导入数据,使用包,用作业调度导入也一样。
claro 2008-11-15
  • 打赏
  • 举报
回复
如何导入的,先贴一下。
水族杰纶 2008-11-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 kenny_20050717 的回复:]
引用 7 楼 kenny_20050717 的回复:
引用 4 楼 wufeng4552 的回复:
SQL codeif object_id('tb')is not null drop table tb
go
create table tb(ID varchar(10),other varchar(10))
bulk insert tb
from 'e:\test.txt'
with
(
FIELDTERMINATOR = ' ',
ROWTERMINATOR = '\n'
)
/*test.txt
12H456 r1
159357 r2
23456 r3 */
select * from tb
--…
[/Quote]
你把数据拷贝到文本文件中,然后再bulk insert看看
kenny_20050717 2008-11-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 kenny_20050717 的回复:]
引用 4 楼 wufeng4552 的回复:
SQL codeif object_id('tb')is not null drop table tb
go
create table tb(ID varchar(10),other varchar(10))
bulk insert tb
from 'e:\test.txt'
with
(
FIELDTERMINATOR = ' ',
ROWTERMINATOR = '\n'
)
/*test.txt
12H456 r1
159357 r2
23456 r3 */
select * from tb
--查询结果
/*
(所影响的行数为 3 …
[/Quote]


csv使用的间隔符应该是逗号,换行符应该是\n,我把上面的语句改成下面这个还是报“发生大容量插入数据转换错误",不知是何原因,请各位大侠指教,小弟先谢了!
bulk insert tb
from 'e:\test.txt'
with
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
kenny_20050717 2008-11-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fcuandy 的回复:]
导前在文件里12h456这行上面加一行
aa aa

然后再导入,导入后删除这行
[/Quote]

不行,还是没导进去,连aa也没有了
kenny_20050717 2008-11-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wufeng4552 的回复:]
SQL codeif object_id('tb')is not null drop table tb
go
create table tb(ID varchar(10),other varchar(10))
bulk insert tb
from 'e:\test.txt'
with
(
FIELDTERMINATOR = ' ',
ROWTERMINATOR = '\n'
)
/*test.txt
12H456 r1
159357 r2
23456 r3 */
select * from tb
--查询结果
/*
(所影响的行数为 3 行)

ID other…
[/Quote]

使用以上语句提示以下错误,不知为什么,表的类型是nvarchar(100),够长了,而且类型也没有问题:

服务器: 消息 4864,级别 16,状态 1,行 1
第 1 行、第 9 列(小类代码)发生大容量插入数据转换错误(类型不匹配)。
claro 2008-11-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fcuandy 的回复:]
导前在文件里12h456这行上面加一行
aa aa

然后再导入,导入后删除这行
[/Quote]
了解。
fcuandy 2008-11-15
  • 打赏
  • 举报
回复
导前在文件里12h456这行上面加一行
aa aa

然后再导入,导入后删除这行
水族杰纶 2008-11-15
  • 打赏
  • 举报
回复
if object_id('tb')is not null drop table tb
go
create table tb(ID varchar(10),other varchar(10))
bulk insert tb
from 'e:\test.txt'
with
(
FIELDTERMINATOR = ' ',
ROWTERMINATOR = '\n'
)
/*test.txt
12H456 r1
159357 r2
23456 r3 */
select * from tb
--查询结果
/*
(所影响的行数为 3 行)

ID other
---------- ----------
12H456 r1
159357 r2
23456 r3

(所影响的行数为 3 行*/

22,294

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧