oracle - 为什么在向查询添加 * 时出现错误?

标签 oracle plsql

这可能是一个非常非常基本的问题,但我是 Oracle 的初学者。我正在运行一个简单的查询,它工作正常并返回结果,但是当将 * 添加到显示的列列表时,我收到以下错误:

ORA-00936: missing expression
00936. 00000 -  "missing expression"
*Cause:    
*Action:
Error at Line: 4 Column: 7

我正在运行的查询是:

select
    sql_plan_hash_value col1
    , elapsed_seconds col2
    , *
from
    (select *
    from SYS.V_$SESSION_LONGOPS
    order by elapsed_seconds desc) result_set
where rownum <= 10;

我认为这是因为我没有为我的前两列提供别名,所以我这样做了,但查询仍然无法正常工作。

最佳答案

您不能将原始 * 与其他列混合使用。您需要使用适当的别名:

select
    sql_plan_hash_value col1
    , elapsed_seconds col2
    , result_set.* --> Like this
from
    (select *
    from SYS.V_$SESSION_LONGOPS
    order by elapsed_seconds desc) result_set
where rownum <= 10;

关于oracle - 为什么在向查询添加 * 时出现错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32881765/

相关文章:

sql - 如何使用数据库来管理信号量?

mysql - 如何为没有内容的行打印零?

sql - 将字符串转换为日期并在给定字符串无效时引发异常

oracle - 为什么 PL/SQL 中不允许静态 ddl?

Oracle直接加载似乎会产生奇怪的结果

python - Cx_Oracle (Python3.6) SQL 查询 GROUP BY 导致 ValueError - 在 SQL Developer 中运行良好

java - 检查 Oracle 数据库中是否存在用户 - java jdbc

sql - 我见过一个,但是……10 克包裹到底是什么?

oracle - 检测for循环中的最后一条记录

oracle - 我们可以使用表类型参数作为 PLSQL 中的默认空参数吗?