ちょいちょい登場するこのエラーですが、どのような場合に出力されるか簡単なサンプルになります。SQL を正しく理解していれば原因の特定は比較的容易だと思われます。
「ORA-00918: 列の定義が未確定です。」は以下のような場合に発生します。言葉が堅苦しいのでわかりにくいですが、エラーメッセージそのものです。
スポンサーリンク
ケース1
select t1.id ,t2.id from table1 t1 ,table2 t2 where id = 'XXXX'
where句で指定したカラム id が、table1 のものか table2 のものかわからないために発生します。 id ではなく、t1.id または t2.id のように指定する必要があります。
ケース2
select * from ( select man as person ,women as person from table3 ) where person = 'saitou'
エイリアスを同一名で指定したため、where 句の person がどちらかのカラムか特定できないために発生します。エイリアスを異なるもので指定する必要があります。