뷰로 인해 일괄 업데이트 ....ㅠㅠ 0 2 1,158

by 널라리 [SQL Query] [2014.04.04 11:03:05]



UPDATE /*+ bypass_ujvc */
(
    SELECT CPI.COMPID, CPI.COMP_NAME, PSO.PERSAMMFSN, PSO.STATE, PSO.USERLEVEL FROM PERSAMOBULEDGER PSO, COMPANYINFO CPI
    WHERE PSO.COMPID = CPI.COMPID(+)
    AND PSO.REGDATE BETWEEN '20040101' AND '20140404'
    AND CPI.COMP_LEVEL = '03'
    AND CPI.PLACECODE <> 'R'
    AND PSO.STATE = '04'
    AND PSO.USERLEVEL != '2'
    MINUS
    SELECT CPI.COMPID, CPI.COMP_NAME, PSO.PERSAMMFSN, PSO.STATE, PSO.USERLEVEL FROM PERSAMOBULEDGER PSO, COMPANYINFO CPI
    WHERE PSO.COMPID = CPI.COMPID(+)
    AND PSO.REGDATE BETWEEN '20040101' AND '20140404'
    AND CPI.COMP_LEVEL = '03'
    AND CPI.PLACECODE <> 'R'
    AND PSO.STATE = '04'
    AND PSO.USERLEVEL != '2'
    AND PSO.USERLEVEL != '1'
)
SET USERLEVEL = '2'
;

위 쿼리를 보면 USERLEVEL 컬럼에 일괄로 '2'로 업데이트를 칠려하는데....
에러의 원인을 모르겠습니다.
minus를 쓴 이유는 minus 밑의 쿼리에 데이터 하나를 빼고 칠려 minus를 썼는데.....
ㅠㅠ
답변 부탁드립니다.
by 마농 [2014.04.04 20:32:11]
2가 아닌거에서 2도 아니고 1도 아닌거를 빼면.
결국은 1인것만 남겠네요.
마이너스 하지 마시고
1인것만 업데이트치면 되겠네요.

그리고 bypass_ujvc 힌트는 11g 부터는 적용되지 않습니다.

by 널라리 [2014.04.07 19:25:24]

답변 감사합니다.^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입