2016-04-29 61 views
0
select * from USER_SCHEDULER_JOB_RUN_DETAILS 
where substr(log_date,1,9) in (
    select substr(log_date,1,9) 
     from USER_SCHEDULER_JOB_RUN_DETAILS 
     where rownum <= 1 ORDER BY LOG_DATE DESC); 

當我執行上面的查詢時,我得到的錯誤以下。ORA-00907:缺少右括號---內部查詢執行

ORA-00907: missing right parenthesis 
00907. 00000 - "missing right parenthesis" 
*Cause: 
*Action: 
Error at Line: 7 Column: 55 

我試圖執行它正在執行內部查詢,但不知道爲什麼它是在執行整個查詢給我的錯誤。

回答

1

請勿在內部查詢中使用order by。 試試這個:

select * from USER_SCHEDULER_JOB_RUN_DETAILS 
where substr(log_date,1,9) in 
(select substr(log_date,1,9) from USER_SCHEDULER_JOB_RUN_DETAILS where rownum <= 1); 
0

額外的信息被包含在括號中。 ORA-00907

您可以使用該查詢作爲您的期望

select * 
    from USER_SCHEDULER_JOB_RUN_DETAILS 
where substr(log_date, 1, 9) in 
     (select MAX(substr(log_date, 1, 9)) over(ORDER BY LOG_DATE desc) 
      from USER_SCHEDULER_JOB_RUN_DETAILS 
     where rownum <= 1);