簡単な診断クエリを作成し、それを Oracle 10g SQL Scratchpad で実行しようとしています。編集:コードでは使用されません。単純な「Select *」をネストしていますが、エラーが発生しています。
Oracle 10g Enterprise Manager コンソールの SQL Scratchpad では、このステートメントは正常に実行されます。
SELECT * FROM v$session sess, v$sql sql WHERE sql.sql_id(+) = sess.sql_id and sql.sql_text <> ' '
それを Select * from () tb2 でまとめようとすると、「ORA-00918: 列が曖昧に定義されています」というエラーが表示されます。この種の声明でそれが起こるとは思わなかったので、少し混乱しています。
select * from
(SELECT * FROM v$session sess, v$sql sql WHERE sql.sql_id(+) = sess.sql_id and sql.sql_text <> ' ')
tb2
私の知る限り、この構造を使用して別の select * ステートメントの結果セットから * を常に選択できるはずです...そうですか?
Oracle/10g/the Scratchpad は、過剰なネストを防ぐために特定の構文構造を受け入れるよう強制しようとしていますか? これはスクラッチパッドのバグですか、それともオラクルの仕組みに関するものですか?