- 締切済み
正しい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ファイルをインポートした状態 となっていますが、それぞれ別の者がインストール作業を行ったので、若干の違いがあるかも知れません。(インストール時のメモでは違いはありません)
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ARC
- ベストアンサー率46% (643/1383)
ソフトウェア構成が全く同じなのであれば、ハードウェア障害の可能性も考えられますよね。 見た目は正常に稼動しているようでも、メモリなどが微妙~に破損していて、特定のアクセス条件が重なったときにだけ障害を起こす、なんて事例もあります。 あとは、SQL*Plusを使用して実行されているのであれば、9.2.0.1のSQL*Plus(Windows)は、なんか妙な動きをする場合がありますよね。 例えば、サーバかクライアントのバージョンを9.2.0.3に上げてみるのも、ひょっとしたら効果があるかも。(パッチはOTNで無償公開されていたはず。) もしサーバがWindows Server 2003なら、9.2.0.3以降が正式対応ですよね。 あとは、見た目は同じでもSQL中の改行コードがCrLfかLfのみかで、動作が違っているのかも。
お礼
回答ありがとうございました。お礼が遅れてすみません。 いろいろ試してみたのですが、解決には至りませんでした...。