조인업데이트를 하려고 하는데 자꾸 ORA-01733: 가상 열은 사용할 수 없습니다 라고 메세지가 뜨네요
UPDATE
(
SELECT RNK, SPARERANK, A.INTERPASSGU,
A.USERNO, A.USERID, A.USERDTE, USERDTE_CHECK
FROM
(
SELECT ROW_NUMBER() OVER
(
PARTITION BY COURSEGU, DEPART, STUDENTGU
ORDER BY PAPERINTERTOT DESC, NAME DESC
) AS RNK, A.PLANCD, A.RECEIPTNO, INTERPASSGU, PAPERINTERTOT,
DECODE(A.COURSEGU,'6','1',A.COURSEGU) COURSEGU,
A.DEPART, A.STUDENTGU, SPARERANK,
TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS') USERDTE_CHECK,
B.USERNO, B.USERID, B.USERDTE
FROM E_APPLICANT A
JOIN E_APPDATA B ON A.PLANCD=B.PLANCD AND A.RECEIPTNO=B.RECEIPTNO
WHERE A.PLANCD=:V_PLANCD AND A.COURSEGU=:V_COURSEGU
AND A.DEPART=:V_DEPART
AND PAPERPASSYN='Y' AND PAPERPASSYN IS NOT NULL
AND PAPERINTERTOT IS NOT NULL
AND ((INTERPASSGU<>'1' AND INTERPASSGU<>'2') OR INTERPASSGU IS NULL)
) A
JOIN E_REGISTPERSON B ON A.PLANCD=B.PLANCD AND A.COURSEGU=B.COURSEGU
AND A.DEPART=B.DEPARTGU AND A.STUDENTGU=B.STUDENTGU
WHERE RNK<=SPARECNT
) SET INTERPASSGU='3', SPARERANK=RNK,
USERNO=:V_USERNO, USERID=:V_USERID, USERDTE=:V_USERDTE
업데이트 구문을 제외하고 셀렉트문만 실행하면 잘나오는데 업데이트문을 실행하면 에러가 뜨네요
ROW_NUMBER() OVER 로 필드를 가공해서 안되는거 같은데
되게하는 방법없을까요?
답변부탁드립니다
|