2017-05-19 20 views
-1

Oracleでは以下の問合せを実行しようとしていますが、このエラーが発生しています。任意のアイデアを解決する方法?ORA-00904:sysdateが無効な識別子エラー

SELECT DISTINCT t1.p_id "Id", 
    (TO_CHAR("sysdate", 'YYYY') + least(SIGN(("sysdate" - to_date('01-Aug-' | | TO_CHAR("sysdate", 'YYYY'), 'DD-Mon-RRRR'))), 0)) "Year" 

    FROM 
     t1, 
     t7, 
     t9 
    WHERE 
     t9.ei_id(+)   = t7.e_id 
    AND (t7.e_student  = t1.p_id) 
    AND (t7.e_module   = t8.m_id) 
    AND (NVL(t9.ei_q18m06, t7.e_end) > '31-Jul-' | | (TO_CHAR("sysdate", 'YYYY') + least(SIGN(("sysdate" - to_date('01-Aug-' | | TO_CHAR("sysdate", 'YYYY'), 'DD-Mon-RRRR'))), 0) + - 5)) 

おかげで、 アルナ

+3

を、引用符で 'SYSDATE'を入れないでください。 –

+0

ありがとうございました。 –

答えて

1

ビジェイが述べているように、あなたは(私も他のエラー発生する可能性がありますあなたの| |固定: - >||):ので、それを書くべき手始めに

SELECT DISTINCT t1.p_id "Id", 
(TO_CHAR(sysdate, 'YYYY') + least(SIGN((sysdate - to_date('01-Aug-' || TO_CHAR(sysdate, 'YYYY'), 'DD-Mon-RRRR'))), 0)) "Year" 
FROM 
    t1, 
    t7, 
    t9 
WHERE 
    t9.ei_id(+)   = t7.e_id 
AND (t7.e_student  = t1.p_id) 
AND (t7.e_module   = t8.m_id) 
AND (NVL(t9.ei_q18m06, t7.e_end) > '31-Jul-' || (TO_CHAR(sysdate, 'YYYY') + least(SIGN((sysdate - to_date('01-Aug-' || TO_CHAR(sysdate, 'YYYY'), 'DD-Mon-RRRR'))), 0) + - 5)) 
2

私はあなただけでSYSDATEを与え、引用符の下にSYSDATEを与える必要はありませんだと思います。 現在、文字列として取得していますので、無効な識別子エラーが発生しています。

関連する問題