选择更多的字段会导致灾难性的失败

Ale*_*don 7 sql-server linked-server sql-server-2012

我有一个从 sql server 2012 到 pervasive sql 的链接服务器的连接。

当我做的select field1, field2, field3 from mytable一切正常!

但是,当我这样做时,select field1, field2, field3, field4, ...field10+ from mytable我收到此错误消息:

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" for linked server "KSLAP208" reported an error. The provider reported an unexpected catastrophic failure.
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "MSDASQL" for linked server "KSLAP208".
Run Code Online (Sandbox Code Playgroud)

我查看了日志,这是它所说的:

2013-02-08 11:27:30.93 spid55      ***Stack Dump being sent to D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\LOG\SQLDump0049.txt
2013-02-08 11:27:30.93 spid55      SqlDumpExceptionHandler: Process 55 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
2013-02-08 11:27:30.93 spid55      * *******************************************************************************
2013-02-08 11:27:30.93 spid55      *
2013-02-08 11:27:30.93 spid55      * BEGIN STACK DUMP:
2013-02-08 11:27:30.93 spid55      *   02/08/13 11:27:30 spid 55
2013-02-08 11:27:30.93 spid55      *
2013-02-08 11:27:30.93 spid55      *
2013-02-08 11:27:30.93 spid55      *   Exception Address = 00000000018F5BBE Module(UNKNOWN+0000000000000000)
2013-02-08 11:27:30.93 spid55      *   Exception Code    = c0000005 EXCEPTION_ACCESS_VIOLATION
2013-02-08 11:27:30.93 spid55      *   Access Violation occurred reading address 0000000009400090
2013-02-08 11:27:30.93 spid55      * Input Buffer 128 bytes -
2013-02-08 11:27:30.93 spid55      *             select * from [KSLAP208].[C003]..PA_Profile_BASE_1119
Run Code Online (Sandbox Code Playgroud)

我可以select *毫无问题地从不同的服务器上做同样的事情!

这里发生了什么事?这是某种 2012 年的错误还是内存问题?

小智 1

因此,您正在使用 Microsoft OLE DB Provider for ODBC (MSDASQL),它可能指向 Pervasive 数据源的 ODBC DSN。由于该错误是访问冲突 (AV),因此我敢打赌,该 AV 是由于 Pervasive ODBC 驱动程序中出现问题而引发的。由于您还提到此查询可以在其他机器上运行,因此您可以仔细检查以下内容:

  1. “坏”机器和“好”机器之间的 ODBC DSN 配置?
  2. Pervasive 的 ODBC 驱动程序版本 - 在“好”和“坏”机器上是否相同?