请教:bulk insert出现“大容量插入: 在数据文件中遇到意外的文件结尾 (EOF)”的问题

wangshuxun 2005-08-05 01:28:42
老师好:
看我下边语句的问题出在什么地方。
ALTER PROCEDURE import
AS
bulk insert testTable from 'C:\test.txt'
with (
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)

test.txt 的内容如下
test1,test2,test3

执行存储过程import,则出现如下提示:
运行dbo."import".

大容量插入: 在数据文件中遇到意外的文件结尾 (EOF)。

在test.txt文件中,test3后边没有做任何操作。我将ROWTERMINATOR = '\n' 换作
ROWTERMINATOR = ' n'
ROWTERMINATOR = ' t'
ROWTERMINATOR = '\r\n'
等都没有成功,错误提示相同。


请老师帮我看看,我的这条语句错在那里了?
注:test.txt里边的test1,test2,test3作为一条记录里边的三个字段。这一个文本文件的内容作为一条数据记录。

谢谢您的费心指点



...全文
705 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
phantomMan 2005-08-06
  • 打赏
  • 举报
回复
001 A1 10 5
--这里每行最多的空格是8个,最少的是6个,只要你最多的空格不会2倍于最少的空格是可以实现的,你改变一下空格的个数
wangshuxun 2005-08-06
  • 打赏
  • 举报
回复
谢谢phantomMan老师
您的方法我试了,可行。非常感谢。
继续提问,您的文本文件(或者我的文本文件)中的各列之间的空格数不同,则“FIELDTERMINATOR = ' ',-- 多几个空格,则没有你的问题”解决问题,但导入的表中,字段包含空格或者没有完全取得文本列的内容,还有什么好的方法可以修正吗?
phantomMan 2005-08-05
  • 打赏
  • 举报
回复
应该是 FIELDTERMINATOR 的问题:

txt 中的文件为(注意每个中间是很多空格):
001 A1 10 5
002 A2 20 4
002 A2 10 4
003 A3 25 8
003 A3 15 8
003 A3 10 8

bulk insert b from 'd:\1.txt'
WITH
(
-- FIELDTERMINATOR = ' ', --如果一个空格就出现你的问题
FIELDTERMINATOR = ' ',-- 多几个空格,则没有你的问题
ROWTERMINATOR = '\n'
)


--
附上表结构:
create table b(
f1 varchar(10),
f2 varchar(10),
f3 varchar(10),
f4 varchar(10),
)



22,210

社区成员

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

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