2015-10-01 2 views
3

Это, вероятно, очень простая проблема, но я новичок в 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; 

Я думал, что это потому, что я не даю псевдонимы моим первым двум столбцам, поэтому я сделал, но запрос все еще не работает.

ответ

5

Вы не можете смешивать сырье * с другими колонками. Вам необходимо использовать соответствующий псевдоним:

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; 
+0

LOL, спасибо .. никогда не думал добавить псевдоним результирующего набора. Любопытно, почему это необходимо для '*', но не для первых двух столбцов. Примите ваш ответ через 10 минут, когда смогу. –

Смежные вопросы