各位高人:
我的文本文件内容大小固定,每行20个字符,加上回车换行符共22个,记录数为45万行,我在用BULK INSERT的时候出现
BULK INSERT 发生大容量插入数据转换错误(截断)
这样的信息,不知道是什么原因,数据库字段大小为30
文件内容如下:
89057002029692416907
89057002029692515325
89057002029692619711
89057002029692717608
。。
我用BCP也没成功,搞不清楚是什么原因,寻求高人!!
谢谢!!
BCP如下:
EXEC master..xp_cmdshell 'bcp "leechdom..btemp" in "d:\45.txt" -c -q -U"sa" -P"1234"'
出现错误信息
Error = [Microsoft][ODBC SQL Server Driver]在 BCP 数据文件中遇到的意外的 EOF
谢谢!!!
我的文本文件内容大小固定,每行20个字符,加上回车换行符共22个,记录数为45万行,我在用BULK INSERT的时候出现
BULK INSERT 发生大容量插入数据转换错误(截断)
这样的信息,不知道是什么原因,数据库字段大小为30
文件内容如下:
89057002029692416907
89057002029692515325
89057002029692619711
89057002029692717608
。。
我用BCP也没成功,搞不清楚是什么原因,寻求高人!!
谢谢!!
BCP如下:
EXEC master..xp_cmdshell 'bcp "leechdom..btemp" in "d:\45.txt" -c -q -U"sa" -P"1234"'
出现错误信息
Error = [Microsoft][ODBC SQL Server Driver]在 BCP 数据文件中遇到的意外的 EOF
谢谢!!!
另外楼主的文件内容的格式也要注意 FIELDTERMINATOR 参数的设置
最好贴出 BULK INSERT的具体代码,以及数据表的具体格式以供参考
PS:
BATCHSIZE = batch_size
指定批处理中的行数。每个批处理作为一个事务复制至服务器。如果复制操作失败,则 SQL Server 提交或回滚每个批处理的事务。默认情况下,指定数据文件中的所有数据为一个批处理。
select * into nbtemp from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};
DefaultDir=D:\;','select * from 45.txt')
只不过要加个Schema.ini文件,且和TXT文件在一个目录下,导入成功
文件内容是
[45.txt]
ColNameHeader=False
CharacterSet=ANSI
Col1=bar Char Width 25
这样就可以了,如果没有该文件,由于文本内容全是数字,就会导入成和EXCEL文件里显示的一样,变成科学计数法,而且第一个字段内容变成了字段名,呵呵!
这种方法速度也是奇快,45万条记录大概10秒钟左右吧!
缺点:无法显示导入进度,不知道该怎么加,呵呵!如果有会的,帮忙给段代码,再谢!希望各位高人再提供一些更好,更快的方法,谢谢!!