0

Oracle奇妙なエラー:予期しないエラーORA-00937:単一グループのグループ関数ではありません

Provider=MSDAORA.1を使用してAdodbを使用してVB6アプリケーションから実行する

クエリ:

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

エラー:

予期しないエラーORA-00937:単一グループグループ関数ではありません

私の知る限り、このエラーは、クエリに集計関数が含まれている場合にのみ発生するはずですが、選択した列は集計関数に含まれておらず、これらの列はGroupBy句に含まれている必要があります。

私のクエリでは、余分な列は選択されていません。

もっと奇妙な:

同じクエリがOracleSQLPlusで実行された場合、それは機能します。ただし、VB6から実行すると、上記のエラーが発生します。ヒント

私はMAXrownumと内部クエリを使用して回避しました。

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設定した場合はバグ1988231である可能性があります。これは、10.2.0.4までのMicrosoftドライバおよびデータベースの問題です。アドバイスは(私が思うにデフォルト)に設定するか、OracleODBCドライバーを使用するように切り替えることだと思われます。FORCESIMILARCURSOR_SHARINGEXACT

(バグ自体はバグではないものとしてクローズされ(Oracleの問題ではなくMicrosoftの問題であるため)、MetalinkドキュメントID 462734.1から参照されています)。

于 2010-12-08T12:35:38.743 に答える
0

プロバイダーを OraOLEDB.Oracle に変更すると、ADO プロバイダーのバグのように見えます - クエリが機能するはずです

于 2010-12-29T13:59:34.223 に答える