select * from Openrowset('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=YES;IMEX=1;Database=\\172.16.1.29\unrar\data.xls',
'select * from [Sheet1$]')
在一台数据库服务器上执行上述语句,开始的时候不会报错,并能查出结果,但次数多了之后,就报下面的错误,重启动数据库服务器之后,错误消失,但使用一段时间之后,错误依旧,不知道什么原因,请高人指点迷津:
补充:
数据库服务器配置:
操作系统:32位 windows 2008
内存:64G
硬盘:600TB
错误信息如下:
消息 7399,级别 16,状态 1,第 1 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 报错。提供程序内存不足。
消息 7320,级别 16,状态 2,第 1 行
无法对链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 执行查询"select * from [sheet$]"。
------解决方案--------------------
估计是内存调度"BUG",在32位系统上,AWE内存只能缓存数据,而不能用作SQLOS内部使用。。。问题大约出在这里
解决这个也比较简单,先在其他SQL服务器如台式机里查询EXCEL数据,再将数据倒入正式数据库