SQL Exception while executing the following:SELECT WPI.WORK_TXT AS WORK_TXT, PC.NAME AS NAME, WPM.MEAS_UNIT AS MEAS_UNIT, WPM.REQ_SUM AS REQ_SUM, STK.STK_N
AME AS STK_NAME, SP.PERIO_ID AS PERIO_ID, SP.PERIO_NUM AS PERIO_NUM, SP.PERIO_YEAR AS PERIO_YEAR, SP.WKP_ITM_ID AS WKP_ITM_ID, SP.PROFESSION AS PROFESSION, SP.OPR_DUTY AS OPR_DUTY, SP.OPR_CLASS AS OPR
_CLASS, SP.OPR_DATE AS OPR_DATE, SP.OPR_END_DATE AS OPR_END_DATE, SP.EXEC_RESULT AS EXEC_RESULT, SP.EXEC_EMP AS EXEC_EMP, SP.EXEC_EMP_NAME AS EXEC_EMP_NAME, SP.EXEC_TIME AS EXEC_TIME, SP.AUDIT_EMP AS
AUDIT_EMP, SP.AUDIT_EMP_NAME AS AUDIT_EMP_NAME, SP.NOTIZ_FLG AS NOTIZ_FLG, SP.NOTIZ_ID AS NOTIZ_ID, SP.REPT_FLG AS REPT_FLG, SP.NOTE AS NOTE FROM (((SVN.SHT_PERIO SP LEFT OUTER JOIN SVN.WK_PLAN_ITM WP
I ON SP.WKP_ITM_ID = WPI.WKP_ITM_ID) LEFT OUTER JOIN SVN.PUB_CLASS PC ON SP.OPR_CLASS = PC.REC_ID) LEFT OUTER JOIN SVN.WK_PLAN_MAT WPM ON SP.WKP_ITM_ID = WPM.WKP_ITM_ID) LEFT OUTER JOIN SVN.STK STK ON
 WPM.STK_ITM_ID = STK.STK_ITM_ID WHERE (SP.OPR_CLASS = ? AND SP.OPR_DATE >= ? AND SP.OPR_DATE <= ? AND SP.OPR_DUTY IN (?) AND oprEndDuty IS NULL) ORDER BY SP.PERIO_NUM ASC (ORA-00904: "OPRENDDUTY": in
valid identifier
)

解决方案 »

  1.   

    拜托,请先排版,否则没人有兴趣看的
    SELECT   wpi.work_txt AS work_txt, pc.NAME AS NAME,
             wpm.meas_unit AS meas_unit, wpm.req_sum AS req_sum,
             stk.stk_name AS stk_name, sp.perio_id AS perio_id,
             sp.perio_num AS perio_num, sp.perio_year AS perio_year,
             sp.wkp_itm_id AS wkp_itm_id, sp.profession AS profession,
             sp.opr_duty AS opr_duty, sp.opr_class AS opr_class,
             sp.opr_date AS opr_date, sp.opr_end_date AS opr_end_date,
             sp.exec_result AS exec_result, sp.exec_emp AS exec_emp,
             sp.exec_emp_name AS exec_emp_name, sp.exec_time AS exec_time,
             sp.audit_emp AS audit_emp, sp.audit_emp_name AS audit_emp_name,
             sp.notiz_flg AS notiz_flg, sp.notiz_id AS notiz_id,
             sp.rept_flg AS rept_flg, sp.note AS note
        FROM (((svn.sht_perio sp LEFT OUTER JOIN svn.wk_plan_itm wpi
             ON sp.wkp_itm_id = wpi.wkp_itm_id)
             LEFT OUTER JOIN
             svn.pub_class pc ON sp.opr_class = pc.rec_id)
             LEFT OUTER JOIN
             svn.wk_plan_mat wpm ON sp.wkp_itm_id = wpm.wkp_itm_id)
             LEFT OUTER JOIN
             svn.stk stk ON wpm.stk_itm_id = stk.stk_itm_id
       WHERE (    sp.opr_class = ?
              AND sp.opr_date >= ?
              AND sp.opr_date <= ?
              AND sp.opr_duty IN (?)
              AND oprendduty IS NULL
             )
    ORDER BY sp.perio_num ASC
    出错信息
    (ORA-00904: "OPRENDDUTY": in 
    valid identifier 
    )
      

  2.   

    错误信息很明显
    OPRENDDUTY 无效的定义
      AND oprendduty IS NULL
    这句有问题