• 締切済み

正しいSQLなのに「ORA-00936: 式がありません。」となる

 DBサーバを3台用意して、あるSQLを実行したところ、2台では期待した結果が得られたのですが、1台では「ORA-00936: 式がありません。」のエラーになってしまいます。  SQLの余分な空白を削除すると「右カッコがありません」「FROMがありません」等とエラーメッセージが変わるので、SQLの途中までしか認識されていない様子です。  SQLは2段階のサブクエリーで構成されており、全体の長さは1k程度です。  2台のPCでは問題なく動作するので、SQLが間違っていることはありません。  また、サブクエリーの中で「UNION ALL」を使っているのですが、これを「UNION」とするとエラーは起きません。  なにか、原因として考えられることはないでしょうか?  PCの環境は、   OS = WinXP SP2   DB = Oracle 9.2.0.1 、同一dmpファイルをインポートした状態 となっていますが、それぞれ別の者がインストール作業を行ったので、若干の違いがあるかも知れません。(インストール時のメモでは違いはありません)

みんなの回答

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

ソフトウェア構成が全く同じなのであれば、ハードウェア障害の可能性も考えられますよね。 見た目は正常に稼動しているようでも、メモリなどが微妙~に破損していて、特定のアクセス条件が重なったときにだけ障害を起こす、なんて事例もあります。 あとは、SQL*Plusを使用して実行されているのであれば、9.2.0.1のSQL*Plus(Windows)は、なんか妙な動きをする場合がありますよね。 例えば、サーバかクライアントのバージョンを9.2.0.3に上げてみるのも、ひょっとしたら効果があるかも。(パッチはOTNで無償公開されていたはず。) もしサーバがWindows Server 2003なら、9.2.0.3以降が正式対応ですよね。 あとは、見た目は同じでもSQL中の改行コードがCrLfかLfのみかで、動作が違っているのかも。

momonaka
質問者

お礼

回答ありがとうございました。お礼が遅れてすみません。 いろいろ試してみたのですが、解決には至りませんでした...。

関連するQ&A