[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, 開発メモ
-,

関連記事

コマンドプロンプトのFor文で、ファイルの一覧を表示する。

コマンドプロンプトの出力結果を引数として、別のコマンドを実行させる。 なんてことが出来ることは知ってるんだけど、どうやってやるのかは良く分からない。 おもむろにコマンドプロンプトを立ち上げて、以下のコ …

no image

[Xcode]C#とは違うエラーキャッチ方法

先日から、Swiftの勉強をしているわけですが、未だに仕事でメインで使っているC#との違いで戸惑うことがちらほらと。 repeat文なんて、VBやC#じゃ見ないよな。forやwhile文が対応してるけ …

[VMWare Fusion]VMWare Fusion 12を導入した話

  日本の中心付近で仕様変更と闘うSE日記 1 Pocket[VMWare Fusion]VMWare Fusion 11がBigSurで使えなかった話。http://ht-jp.net/b …

OracleでLISTAGG関数を使ったけど、世界を変えられなかった話・・・

OracleでLISTAGG関数を使ったら、世界が変わった話。 はい、休日出勤でした。 そして、休日出勤の結果、以下のことが分かりました(泣 日本の中心付近で仕様変更と闘うSE日記OracleでLIS …

デグレをぶちかましたので、開発作業を1週間以上止められた話。

自分が改修を担当した画面でデグレが発覚してしまい、開発作業を1週間以上止められました。 止められたのは自分だけですが、マジです。 そんだけ、開発現場において、デグレってのは駄目な話です。 一回、こうい …


カテゴリー