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

这篇博客记录了在使用SQL进行大容量数据导入时遇到的问题,详细描述了导入过程,包括设置环境变量、解压文件、执行SQL脚本等步骤。在导入过程中遇到了大容量插入时的文件结尾错误(EOF),这可能是数据文件不完整或格式错误导致的。
服务器: 消息 4832,级别 16,状态 1,行 1
大容量插入: 在数据文件中遇到意外的文件结尾 (EOF)。
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'STREAM' 报错。提供程序未给出有关错误的任何信息。
OLE DB 错误跟踪[OLE/DB Provider 'STREAM' IRowset::GetNextRows returned 0x80004005:  提供程序未给出有关错误的任何信息。]。
语句已终止。

解决方式:
由于原来服务器故障,是从原来的备份中复制过去的,可能没有注意文本的分割符变掉了,将txt-sql-ec.sql中的" FIELDTERMINATOR = ' ', "单引号 中的空格改为TAB后,导入正常。

txtsql.bat

点击(此处)折叠或打开

  1. set r=%time%
  2. set d=%date%
  3. echo %d% %r% txt-sql开始导入 >>c:\txtsql\EC-import.txt
  4. rar a -agYYYYMMDDHHMM -df -o+ d:\input_bak\Oracle-EC- c:\input\*.txt
  5. winrar e -o+ c:\input\oracle_files.zip c:\input
  6. osql -S (local) -U sa -P local -d EC -i c:\txtsql\txt-sql-ec.sql >>c:\txtsql\EC-import.txt
  7. rem pause
  8. set r=%time%
  9. echo %r% txtsql导入完成 >>c:\txtsql\EC-import.txt

txt-sql-ec.sql

点击(此处)折叠或打开

  1. use [EC]

  2. BULK INSERT mid_item
  3. FROM 'C:\input\mid_cus.txt'
  4. WITH (
  5.     FIELDTERMINATOR = ' ',
  6.     ROWTERMINATOR = '\n'
  7. )
  8. BULK INSERT mid_bom
  9. FROM 'C:\input\mid_bom.txt'
  10. WITH (
  11.     FIELDTERMINATOR = ' ',
  12.     ROWTERMINATOR = '\n'
  13. )
  14. BULK INSERT mid_cus
  15. FROM 'C:\input\mid_cus.txt'
  16. WITH (
  17.     FIELDTERMINATOR = ' ',
  18.     ROWTERMINATOR = '\n'
  19. )

  20. BULK INSERT mid_vdr
  21. FROM 'C:\input\mid_cus.txt'
  22. WITH (
  23.     FIELDTERMINATOR = ' ',
  24.     ROWTERMINATOR = '\n'
  25. )
  26. BULK INSERT mid_
  27. FROM 'C:\input\mid_cus.txt'
  28. WITH (
  29.     FIELDTERMINATOR = ' ',
  30.     ROWTERMINATOR = '\n'
  31. )

  32. delete from mid_itm where dty < (getdate()-7)

阅读(1715) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~
评论热议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值