0

Oracle 奇怪的错误:意外错误 ORA-00937:不是单组组函数

从 VB6 应用程序执行,使用 Provider=MSDAORA.1 使用 Adodb

询问:

Select Max(SNO) as SRNO 
  From Orders 
 Where OrderDate = '30-Jan-2009' 

错误:

意外错误 ORA-00937: 不是单组组函数

据我所知,仅当查询包含聚合函数时才应触发此错误,而选定的列不在聚合函数中,那么这些列必须在 Group By 子句中。

现在在我的查询中,没有选择额外的列。

更奇怪的是:

如果在 oracle SQL Plus 中执行相同的查询,它就可以工作。但如果从 VB6 执行,则会出现上述错误。任何提示

我一直在MAX使用 rownum 和内部查询。

select SRNO  
  from (Select SNO as SRNO 
          From Orders 
         Where OrderDate = '08/Dec/2009'  
      order by SNO  desc ) 
 where RowNum = 1 
4

2 回答 2

1

CURSOR_SHARING如果您设置为FORCEor ,则可能是错误 1988231 SIMILAR,这是 Microsoft 驱动程序和数据库直到 10.2.0.4 的问题。建议似乎是设置CURSOR_SHARINGEXACT(我认为的默认值),或切换到使用 Oracle ODBC 驱动程序。

(错误本身已作为非错误关闭(因为它是 Microsoft 问题而不是 Oracle 问题),并且引用自 Metalink 文档 ID 462734.1)。

于 2010-12-08T12:35:38.743 回答
0

它看起来像 ADO 提供程序中的错误,如果您将提供程序更改为 OraOLEDB.Oracle - 查询应该可以工作

于 2010-12-29T13:59:34.223 回答