私は次のクエリを持っています。
唯一のことは、DESC Orderの結果セットが必要であり、クエリの最後に追加した次のORDERBY句が次のOracleエラーを生成することです。
ORA-00933:SQLコマンドが正しく終了していません00933。00000-「SQLコマンドが正しく終了していません」*原因:
*アクション:行:46列:54でエラーが発生しました
これがクエリです。この場合も、このクエリは機能します。次の行を追加すると、それだけです。
FINAL_SEARCH order by FINAL_SEARCH.DOC_HDR_ID desc
すべてが壊れます。
何か案は?私のALIASはそれと関係があると思いますが、私は間違っている可能性があります。
クエリ-
Select * from ( select DISTINCT(DOC_HDR.DOC_HDR_ID),
DOC_HDR.INITR_PRNCPL_ID,
DOC_HDR.DOC_HDR_STAT_CD,
DOC_HDR.CRTE_DT,
DOC_HDR.TTL,
DOC_HDR.APP_DOC_STAT,
DOC1.DOC_TYP_NM,
DOC1.LBL, DOC1.DOC_HDLR_URL,
DOC1.ACTV_IND
from KREW_DOC_TYP_T DOC1, KREW_DOC_HDR_T DOC_HDR
where DOC_HDR.INITR_PRNCPL_ID IN ( '10000000001' ) and
( DOC1.DOC_TYP_NM = 'PO' or
DOC1.DOC_TYP_NM = 'POA' or
DOC1.DOC_TYP_NM = 'POC' or
DOC1.DOC_TYP_NM= 'POPH' or
DOC1.DOC_TYP_NM ='PORH' or
DOC1.DOC_TYP_NM = 'POR' or
DOC1.DOC_TYP_NM = 'PORT' or
DOC1.DOC_TYP_NM = 'POSP' or
DOC1.DOC_TYP_NM = 'POV') and
DOC_HDR.DOC_HDR_STAT_CD!= 'I' and
DOC_HDR.DOC_TYP_ID = DOC1.DOC_TYP_ID )
UNION
Select DISTINCT DOC_HDR.DOC_HDR_ID,
DOC_HDR.INITR_PRNCPL_ID,
DOC_HDR.DOC_HDR_STAT_CD,
DOC_HDR.CRTE_DT,
DOC_HDR.TTL,
DOC_HDR.APP_DOC_STAT,
DOC1.DOC_TYP_NM,
DOC1.LBL,
DOC1.DOC_HDLR_URL,
DOC1.ACTV_IND
FROM KREW_DOC_TYP_T DOC1,
KREW_DOC_HDR_T DOC_HDR
WHERE DOC1.DOC_TYP_NM = 'PO' AND CAST(DOC_HDR.DOC_HDR_ID AS VARCHAR(14)) = ANY (
Select PPT.FDOC_NBR
FROM PUR_PO_T PPT, PL_PURCHASE_LOG_PO_T PPL
WHERE PPT.AP_PUR_DOC_LNK_ID = ANY (
Select PRT.AP_PUR_DOC_LNK_ID
FROM PUR_REQS_T PRT,
KREW_DOC_HDR_T DOC_HDR
WHERE CAST(DOC_HDR.DOC_HDR_ID AS VARCHAR(14)) = PRT.FDOC_NBR AND
DOC_HDR.INITR_PRNCPL_ID IN ( '10000000001' ) )) FINAL_SEARCH order by FINAL_SEARCH.DOC_HDR_ID desc;
更新-ALIASを削除し、両方のクエリの後に「ORDER BY」ステートメントを配置すると、SQLDeveloperで機能しました。ただし、Javaを使用してこのクエリを生成するWebアプリケーションを介してこのクエリを実行すると、無効なシンボルに関するORACLEエラーが発生します。無効な記号は、1番目のORDERBYステートメントを終了するために使用するセミコロンです。SQL Developerでは他の方法では機能しませんが、Webアプリで生成したものと同じステートメントを実行すると失敗するようです。