我正在编写一个简单的诊断查询,然后尝试在 Oracle 10g SQL Scratchpad 中执行它。编辑:它不会在代码中使用。我正在嵌套一个简单的“Select *”,它给了我错误。
在 Oracle 10g Enterprise Manager Console 的 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/scratchpad 是否试图强迫我接受某种语法结构以防止过度嵌套?这是暂存器中的错误还是有关 oracle 工作原理的问题?