2010-12-08 14 views
0

Oracleの奇妙なエラー:予期しないエラーORA-00937:ない単一グループのグループ機能Oracleの奇妙なエラー:予期しないエラーORA-00937:ない単一グループのグループ機能

、VB6アプリケーションから実行ADODB使用してプロバイダを使用して= MSDAORA.1

問合せ:

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

エラー:

Unexpected error ORA-00937: not a single-group group function

私の知る限り、このエラーは集計関数に含まれていない選択された列がクエリに集計関数を含む場合にのみ発生します。これらの列はGroup By節になければなりません。

私の質問では、余分な列が選択されていません。

もっと奇妙:

同じクエリは、Oracle SQLで実行プラスそれが動作している場合。 VB6から実行すると上記のエラーが発生します。任意のヒント

私はMAXについて、rownumと内側のクエリを使用して作業しました。あなたは10.2.0.4までのマイクロソフトのドライバとデータベースに問題があるFORCESIMILARからCURSOR_SHARINGセットを持っている場合

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

エクストラ先端を動作するはずですより:日付列を比較する際に日付を使用。 '' Jan-2009 'の代わりに' date '2009-01-30''や 'to_date('30-Jan-2009'、 'dd-Mon-yyyy'、 'nls_date_language = american')' ''。 –

答えて

1

はバグ1988231のだろう。アドバイスは、CURSOR_SHARINGEXACT(私が思うにはデフォルト)に設定するか、Oracle ODBCドライバを使用するように切り替えるようです。

(このバグ自体はバグではなく、Microsoftの問題であり、Oracleのものではありません)、MetalinkのドキュメントID 462734.1から参照されています。

+0

このコーナーケースをいただきありがとうございます。私はそれがクライアントの場所にあり、彼らが保留中のジョブを処理し始めたので、同じ時間をテストすることができません。私はupotedしました。一度テストされたら私は受け入れられるとマークします。 –

0

あなたはOraOLEDB.Oracleに、プロバイダを変更した場合には、ADOプロバイダのバグのように見える - クエリがそれにもかかわらず全く関係のない、しかし重要な、

+0

これはVB6です。 OraOLEDB.Oracle –

+0

「Provider = MSDAORA.1を使用してAdodbを使用する」 - > change Provider = OraOLEDB.Oracle.1(oracleクライアントでインストールできます) –

関連する問題