bulk insert 时,数据文件unicode格式报错

yan63 2005-07-06 03:26:07
数据文件:
1#sep#XXX#sep#XXX#sep#XXX#sep#XXX
19#sep#XXX#sep#XXX#sep#XXX#sep#XXX
(XXX)表示字符串

格式文件:
8.0
5
1 SQLINT 0 4 "#sep#" 1 admin_id ""
2 SQLCHAR 0 10 "#sep#" 3 adminname ""
3 SQLCHAR 0 50 "#sep#" 4 email ""
4 SQLCHAR 0 100 "#sep#" 5 telephone ""
5 SQLCHAR 0 100 "\r\n" 6 address ""


use model

BULK INSERT model..adminX FROM 'C:\DataImport\admin.txt'
WITH (

DATAFILETYPE = 'widechar',
FIELDTERMINATOR = '#sep#',
FORMATFILE = 'D:\DataSetReverse\DataImportRule\Format.fmt',
ROWTERMINATOR = '\n',
KEEPNULLS,
TABLOCK
)

表结构:
CREATE TABLE [adminX] (
[admin_id] [int] NULL ,
[userid] [bigint] NULL ,
[adminname] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[e_mail] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[telephone] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[address] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO


错误信息:
服务器: 消息 4832,级别 16,状态 1,行 1
大容量插入: 在数据文件中遇到意外的文件结尾 (EOF)。
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'STREAM' 报错。提供程序未给出有关错误的任何信息。
OLE DB 错误跟踪[OLE/DB Provider 'STREAM' IRowset::GetNextRows returned 0x80004005: 提供程序未给出有关错误的任何信息。]。
语句已终止。


若是将数据文件改为ansi格式,则第一列数据变为:
1702044465 ......
1931688241 ......


恳请不吝赐教,谢过先
...全文
697 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
frankwong 2005-07-11
  • 打赏
  • 举报
回复
数据表脚本和格式文件、数据文件发给我试试!
frankstudio@163.com
yan63 2005-07-06
  • 打赏
  • 举报
回复
frankwong(黄梓钿)
若是您还在,请看一下,我重起了机子,错误依然,我执行的是
use model

BULK INSERT model..adminX FROM 'C:\DataImport\admin.txt'
WITH (

DATAFILETYPE = 'widechar',
FIELDTERMINATOR = '#sep#',
FORMATFILE = 'D:\DataSetReverse\DataImportRule\Format.fmt',
ROWTERMINATOR = '\n',
KEEPNULLS,
TABLOCK
)

就是带格式文件的bulk insert
错误还是
服务器: 消息 4832,级别 16,状态 1,行 1
大容量插入: 在数据文件中遇到意外的文件结尾 (EOF)。
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'STREAM' 报错。提供程序未给出有关错误的任何信息。
OLE DB 错误跟踪[OLE/DB Provider 'STREAM' IRowset::GetNextRows returned 0x80004005: 提供程序未给出有关错误的任何信息。]。
语句已终止。
yan63 2005-07-06
  • 打赏
  • 举报
回复
frankwong(黄梓钿) 的意见
(格式文件里面的数据类型最好都用SQLCHAR,然后bulk insert到一个临时表,再用语句转换数据类型后再导入正式表,这样比较好)是正解,在下解决了上面的问题一定这样做(特别是SQLCHAR我之前一直都没注意到的)
但是我的数据文件格式检查过多次,现在重起一下机子
若是可以一定马上结贴
谢过~
frankwong 2005-07-06
  • 打赏
  • 举报
回复
在我的机器上执行,除了去掉DATAFILETYPE = 'widechar'这句能完全执行正常,没有其它问题.否则提示:大容量插入: DataFileType 被错误地指定为 widechar。将假定 DataFileType 为 char,因为数据文件没有 Unicode 签名。不过还是能导入数据.
你出现的错误:大容量插入: 在数据文件中遇到意外的文件结尾 (EOF)。我觉得是数据文件格式的问题,包括每一行没有换行回车等.还有,使用bulk insert很久个人觉得,格式文件里面的数据类型最好都用SQLCHAR,然后bulk insert到一个临时表,再用语句转换数据类型后再导入正式表,这样比较好!
yan63 2005-07-06
  • 打赏
  • 举报
回复
没人理,难道在下神憎人厌鬼见愁...
就算是也等...
yan63 2005-07-06
  • 打赏
  • 举报
回复
若是不用格式文件
而数据文件改为
1#sep#2#sep#XXX#sep#XXX#sep#XXX#sep#XXX#sep#3
19#sep#3#sep#XXX#sep#XXX#sep#XXX#sep#XXX#sep#4

执行
use model

BULK INSERT model..adminX FROM 'C:\DataImport\admin.txt'
WITH (
DATAFILETYPE = 'widechar',
FIELDTERMINATOR = '#sep#',
ROWTERMINATOR = '\n',
KEEPNULLS,
TABLOCK
)

结果正常
(所影响的行数为 2 行)

数据也正常

越发地苦恼了....

yan63 2005-07-06
  • 打赏
  • 举报
回复
可怜巴巴地自己顶一下
*修正 +增加 -去除 ^调整 1.2.9 *修正查看我的表中编辑、删除用户视图、存储过程、用户函数列表为空报错; +在查看我的表中增加导出表结构、索引、视图、存储过程、用户函数为SQL语句的功能。 1.2.8 ^允许修改密码处使用空密码,以方便一些要求空密码的软件连接; *修正win10下查询分析器缺少动态库和语法高亮未激活的问题; +增加了大容量数据的存取支持,增加bcp命令,允许在SQL中使用bcp命令进行大数据的导入导出; +增加BULK INSERT、OPENROWSET这些数据批处理SQL命令的支持。 示例:--OPENROWSET SELECT CustomerID, CompanyName FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb'; 'admin';'',Customers); 这种通过OPENROWSET,把access,excell,cvs,txt都变成一个表来取。 示例:--BULK INSERT fmt由bcp生成 BULK INSERT xxxTable FROM 'c:\xxx.csv' WITH (FORMATFILE = 'fieldMap.fmt', BATCHSIZE=10000) 1.2.7 +配置中添加Debug条件项,其值非0,则在启动不会锁定面板,便于程序员使用; +计划任务中备份部分增加对备份文件个数的定义,允许保留5~99个备份,旧的备份自动删除; +托盘区菜单添加“查找”项,用来快速打开程序所在目录,方便开启多个副本的用户查找对应目录; ^数据库页右键菜单启动事件探查器,自动加载标准模板,方便使用。 1.2.6 *还原数据库,修正输入库名点取消后没有中止还原等错误; +查询分析器添加语法高亮支持; *修正关闭服务,有机率卡顿的现象,进行了优化处理; +在操作系统关闭,自动停止服务,防止数据丢失。 1.2.5 +数据库页增加查看我的表功能菜单项,可管理视图、存储过程及自定义函数和查看表结构等; ^部分菜单及按钮增加图标,增加美观度; +内存管理页增加AWE开关,以解决部分电脑内存不足造成运行缓慢的问题,AWE功能也占内存。 1.2.4 ^选择开机启动,会自动删除与软件关联的注册表项,防止变更实例名造成注册表残留,对于已登记开机启动,又直接删除了软件的,请手工删除注册表Run项中的残留; *修正部分win7系统下无法正常解锁的问题(系统无法访问127.0.0.1造成); *修正部分文字描述内容错误(漏字或多打字等)。 1.2.3 +数据库页面,集成外部工具“查询分析器”与“事件探查器”,系SQL自带程序,方便使用; -删除内置“查询分析”功能页; ^数据库页面,密码修改,允许任意字符,不再限制只能为0~9a~z了,但不允许为空; ^数据库内核升级至8.00.2305,开启AWE,支持大内存(超2G)及修复漏洞; +增加SQL Tips页,记录一些常用的SQL语句,方便查阅; ^标题栏解锁界面和密码修改页面进行调整,增加多语言支持。 1.2.2 *附加数据库,修正输入库名点取消后没有中止附加等错误; +增加面板锁,点击左上角的金锁,输入SA用户密码,输入正确则打开面板,否则隐藏面板,不限制开、关服务; +数据库页面,右键菜单增加打开文件目录,方便用户操作; +增加内存管理页,控制SQL Server内存占用,与企业管理器相同。 1.2.1 ^未开启服务,关闭窗口会退出程序,开启服务,关窗窗口则是隐藏; *附加数据库,修正目标目录与源目录相同无法附加的问题。 1.2.0 +增加托盘区菜单项“重启”,方便重启SQL服务; ^附加数据库文件,将移动改为复制,原文件不会被删除; +计划任务在备份数据库后,自动清除旧备份,只保留最后5个备份(按文件,不按间); *修正计划任务无法正确执行的问题,由皮肤引起的。 1.1.9 +增加win8的支持,增加皮肤以美化界面; +增加查询分析器,方便使用SQL操作数据库; +增加简体、繁体语言切换,方便港台及深圳用户使用。 1.1.8 ^计划任务中执行SQL语句变更为执行SQL脚本文件,支持GO分隔,方便执行复杂任务。 1.1.7 +配置文件中增加AppTitle字符串项,如果有输入内容,则在启动会以该项的值为窗口标题;繁体用户请将配置文件保存为Unicode格式; *修正没有清除默认实

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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