[ORACLE]ORA-00918:列の定義が未確定です・・・のエラーにならなかった

投稿日:

なんでエラーになるものをマージしてるんだ?

と、怒られました。

一瞬、理解が出来ず・・・

で、エラーを再現してもらう・・・と。

あっさり発生。

早く修正しろって突っ返されました。

頭には「?」しか浮かばない

それもそのはず、自分の環境で同一の処理を実行してもエラーにならないんですもの・・・

少なくとも、自分の環境で実行時にエラーになるようなものは、マージしません。

デバッグで処理を追ってみるものの、エラーになるような箇所は見当たらず。

~そんなこんなで1時間過ぎた頃・・・~

「ORA-00918で落ちてるから、SQLを確認しろや」と。

エラーの内容を頼りに、SQLを精査したらダブっている箇所を発見。

select 
   head.name as name
   , body.name as name
   , body.address as address
from
   header head
   left join detail body
     on body.id = head.id
        :
        :
        :
   left join detail body
     on body.id = head.id

こんな感じで、同じ別名を使用したJOIN句が2箇所存在してました。

自分の環境では、やはりエラーにならない

先にも書いたけど、自分の環境ではエラーにならず、正常にデータ取得できるし・・・

実行されるSQLだけを取得し直して実行してみても、問題なし。

まぁ、釈然としないまま修正をしたわけです。

ただ、調べていたら、過去に似たような状況がバグであったみたいです。

[Oracle] 「ORA-00918: 列の定義が未確定です。」になるはずが...
https://ameblo.jp/archive-redo-blog/entry-10033356733.html

この記事自体が2005年で、10年以上前であることと、そもそもOracleのバージョンが異なることには注意。

実際、私が使用しているバージョンははOracle 11gなので。

まぁ、こんな事もあるってことで。







-ORACLE, 開発メモ
-,

関連記事

[ORACLE]ora-12638 資格証明の取出しに失敗しましたと表示される原因と対処法

客先で起こった内容。 状況 客先のdumpを取得するために、用意されているバッチファイルを実行した時に発生 ora-12638 資格情報の取出しに失敗しました バッチファイルの黒い画面で一瞬だけエラー …

WindowsのコマンドプロンプトでUnicodeを扱おうとして挫折した。

WindowsのコマンドプロンプトでUnicodeのファイル名を扱うためのバッチファイルをどうたらこうたら。 http://daily-misc.blogspot.jp/2014/12/windows …

[VMWare Fusion]VMWare Fusion 11がBigSurで使えなかった話。

  現在、WindowsとMacの2OS持ちの私ですが、2OSにはデメリットもありまして、それをカバーするために、VMWare Fusionを使用してWindowsとの橋渡しをしたりしてる訳 …

ORACLEのMERGE INTOで、UPDATEは出来るのに、INSERTできない

最近、Oracleのエラーの話しか書いてない気がするw     便利というか、トランザクション内の処理も1つで済むので、MERGE INTO文を使うことがあります。 実際、 新規デ …

[ORACLE]ORA-24344:正常に終了しましたが、コンパイル・エラーがあります。

全然、正常に終われてねぇんじゃん?? って思った。 ビューの作成時に発生。 ネットで検索するも、明確な回答は見当たらず・・・ ただ、エラーには違いないので、ビューが正しく作成されていないことになる。 …


カテゴリー