• 締切済み

正しい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ファイルをインポートした状態 となっていますが、それぞれ別の者がインストール作業を行ったので、若干の違いがあるかも知れません。(インストール時のメモでは違いはありません)

  • Oracle
  • 回答数1
  • ありがとう数15

みんなの回答

  • 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

  • ORA-22866について

    DBのインポートが出来ない状況で、1週間ほど悩んで済ます いろいろ調査してみたのですが、キャラクタセットの変更等 どうも、うまくかないみたいです。 内容) 以下のようなSQL文で、ORA-22866のエラーが出ます。 <<実行したSQL文>> CREATE TABLE FOO (A CLOB); <<返ってくるエラー>> ORA-22866: デフォルトのキャラクタ・セットの幅が固定されていません。 そこで質問なのですが、デフォルトのキャラクタ・セットの幅を 固定するにはどうしたら良いのでしょうか? 是非、ご教示ください。 環境) db:ORACLE8.1.6 os:windows2000 server

  • ORA-01861について

    Oracleで同一インスタンスの別スキーマに同じテーブル構成を作り開発環境としています。 そこで下記のSQL文を実行しようとすると、あるスキーマでは正常に検索されるけど別のスキーマでは 「ORA-01861 リテラルがフォーマット文字列と一致しません」 とのエラーメッセージが出力されます。 また困ったことに別マシンから同様の検索を行うとどのスキーマでも正常に検索が行われます。 Net8とかOracleクライアントの設定の問題でしょうか? DBサーバはOracle10g、クライアントは前者のマシンがOracle8i、後者のマシンにOracle9iがインストールされています。 【対象SQL文】 SELECT * FROM (SELECT TEMP.*, ROWNUM AS RM FROM (SELECT TEST.COL1, TEST.COL2 FROM TEST WHERE (COL1 = 'Dummy') AND COL2 = '1' AND DATE_COL <= '2005-11-04 12:00:00.0' -- ※この行に対して「ORA-01861」が発生しています。 ) TEMP ) WHERE RM >= 1 AND RM <= 300 ORDER BY RM /

  • VB.NET ORA-12170

    http://okwave.jp/qa/q8420174.html ↑ VB.NETで作成したアプリでこちらの質問で無事解決し、違う環境で試したところORA-12170の タイムアウトエラーが発生しました。 SQL*Plusからの接続は問題ありません。 わからないのはWEBアプリの方は接続できるのに、コンソールアプリの方がこのエラーになってしまいます。 どちらのアプリの接続文字列も同じData Sourceを指定してます。 「db1」がTNSNAMES.ORAに記述している識別子になります。 WEBアプリ側 (Web.configに記述) <connectionStrings> <add name="oracle" connectionString="Provider=OraOLEDB.Oracle;Data Source=db1;Password=pass1;User ID=user1" providerName="System.Data.OleDb" /> </connectionStrings> コンソールアプリ側 (INIファイルに記述) ConnectionString=Provider=OraOLEDB.Oracle;Data Source=db1;Password=pass1;User ID=user1 一般的にはDBサーバにネットワークがつながってないなど単純な理由のようですが、 WEBアプリは接続できるので、そういうことはあり得ないと思います。 コンソールアプリの問題と思うのですが、どんな原因が考えられるでしょうか?

  • tnsnames.ora ファイルについて

    VB初心者です。現在、開発環境のPCにて、VB6でOracleサーバにoo4oを使って接続しています。接続文字列にはtns名で名前解決しています。 質問なのですが、このプログラムをセットアップファイルを使ってその他のPCにインストールしようと思います。その際にはOracleドライバおよびtnsnames.oraもインストールする必要はありますか?もし、必要な場合tnsnames.oraはどこに保存すればよろしいのでしょうか?なお、インストール先にはOracleクライアントはインストールされません。 どうぞよろしくお願いいたします。

  • ORA-12514が出た時の対処法と原因

    今回で2度目なのですが、ORA-12514のエラーがでる様になりました。 前回は仕方なくフォルダを削除して再インストールしたら直りましたが、 PCで作業している内に再び同じ現象になりましたので、 原因と再インストール以外の対処法があればと思い書き込みさせて頂きました。 環境はWindows2000でOracle10gです。 Oracleを入れたPCと作業しているPCは同じPCです。 前回と今回の違いは、 前回は「XYZ」の作成をしていない。 サービスのOracleOraDb10g_home1TNSLitenerが開始できなかった。 (一応コマンド入力でもダメでした) (リスナーの起動を試すみたいなのがインターネットで検索してる時に書いてあったので参考にしました) の2点です。 現在は「XYZ」が作成されているのと、 OracleOraDb10g_home1TNSLitenerが停止したり開始したりすることができます。 自分で作成したオラクルは初めてで、 最初にエラーが出た時もインターネットで検索したりして、 原因を探そうと思いましたが難しくて断念し再インストールといった感じでした。 どうかよろしくお願いします。 listener.oraとtnsnames.oraは下記の通りです。 # listener.ora Network Configuration File: g:\oracle\product\10.1.0\Db_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = g:\oracle\product\10.1.0\Db_1) (PROGRAM = extproc) ) ) XYZ = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = abc)(PORT = 1521)) ) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = abc)(PORT = 1521)) # tnsnames.ora Network Configuration File: g:\oracle\product\10.1.0\Db_1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. XYZ = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = abc)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = abc)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )

  • ORA-12571パケット書き込みエラーについて

    たまにですが、VBの業務アプリを動かしてると途中で落ちる現象が出ています。 環境 DB:Oracle9i 9.2 言語:VB6 以下のエラーがログに残されてました。 登録、更新は利用者はその時間帯はしていないとは言っていましたが、していたのかもしれません。 原因が特定できず、同じ現象を出せませんので対応のしようなく、困っています。 以下、ログ内容 --------------------------------------------- 2005/11/25 11:49:50,DbDynaset,SQL実行エラー, ORA-12571: TNS: パケットの書込み機に障害が発生しました。 --------------------------------------------- どなたかアドバイスお願い致します。

  • ORACLE init.oraの設定

    ORACLEのパラメータを変更するために、init.oraの設定を行いたいのですが、以下のコマンドをSQLPLUSで実行するのですがエラーになってしまいます。 どのようにしたら実行できるのでしょうか? 教えてください。 SQL> startup pfile=E:\oracle\admi ORA-01031: 権限が不足しています。 使用環境    ORACLE VERは9.2.0.1.0    OS   XP 宜しくお願いします。

  • tnsnames.oraファイルについて

    初心者の質問で申し訳ないのですが。。。。 下記サイトからOracle Database 10g Client Release(10.2.0.3)を ダウンロードしてインストールしました。 (URL) http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10203vista.html インストール後、Visual Studioの開発環境からデータソースの新規追加を行い、接続テストを試みたところ、 以下のエラーが出力されました。 (Error) ORA-12514: TNS:listener does not currently know of service requested in connect descriptor いろいろ調べていると、上記エラーの発生原因として、tnsnames.oraファイルの内容に誤りがあるのでは? という認識をもっているのですが、 肝心のtnsnames.oraファイルがOracle Clientのインストール環境下に存在しません。 そもそも、tnsnames.oraファイルというのは、クライアント側で設定するものではないのでしょうか?? 基本的な質問で本当に申し訳ないのですが、 どなたかご回答をお願い致します。

  • 共有サーバ接続で ora-12523

    専用サーバ接続だと、問題なく接続できるのですが、 共有サーバ接続にするとora-12523でエラーとなってしまいます。 tnsnames.oraに (CONNECT_DATA = (SERVER = SHARED)) としてローカル環境で接続しています。 同じような現象をご存知が見えましたら、ご教授願います。 os : miracle linux 2.4.9-e.9.30ml db : oracle 10.1.0.2

  • ACCESSからODBC経由だと"ORA-12504"

    遠隔の環境からOracleに接続させています。 OracleのSQL Plusだと、接続できるのですが、 ACCESSのODBC経由だと、「ORA-12504」のエラーが表示され、接続できず、困っています。 サービス名はあわしているつもりです。 アドバイスをお願いいたします。 ●OracleサーバーのVerはよくわかりません... 多分古い(8iぐらい)と思います。 accessは2003です。 Oracleクライアントは、Oracle8iです。 よろしくお願いいたします。