oracle update 문의드립니다. (수정) 0 3 1,185

by 시리 [SQL Query] [2017.11.01 17:21:57]



UPDATE
COMTNEMPLYRINFO
SET
PASSWORD = '비밀번호!!!', LOGIN_FAIL_COUNT = 0
WHERE
EMPLYR_ID IN (
SELECT
SCRTY_DTRMN_TRGET_ID
FROM
COMTNEMPLYRSCRTYESTBS
WHERE
AUTHOR_CODE NOT IN ('ROLE_SUPER_ADMIN', 'ROLE_ADMIN')
);

 

제가 생각한 것은

 

1. COMTNEMPLYRSCRTYESTBS의 AUTHOR_CODE가 'ROLE_SUPER_ADMIN', 'ROLE_ADMIN'이 아닌 아이디가 조건절이고

2. 저 아이디를 emplyr_id로 받는 COMTNEMPLYRINFO의 PASSWORD를 일괄 업데이트 하고 싶은데

어떻게 짜야 할 지 모르겠네요 ㅠㅠ...

 

루프를 돌려야 하는 것인가요

방향 도움 부탁드립니다

 

이렇게 실행시 값은 변경되지만 IN의 문제점이 있다고 합니다 ㅠㅠ...

무슨 문제가 있는지 도움 부탁드립니다...

 

많은 질문 수정에 송구한 마음이 드네요 ㅠㅠ...

 

by 우리집아찌 [2017.11.02 09:27:20]

작은양이면 별문제 없을텐데요.?

대용량 UPDATE 인가요?

MERGE INTO 문 쓰셔도 되고

프로시져 써서 CURSOR로 돌려도 됩니다.


by 마농 [2017.11.02 09:39:21]

구문만 봐서는 문제를 모르겠네요.
쿼리 자체가 틀렷다는 것인지?
쿼리 자체는 맞지만 성능에 문제가 있다는 것인지?


by jkson [2017.11.02 09:52:23]

혹시 AUTHOR_CODE 컬럼이 null 허용 컬럼이라면 null처리를 안 했다는 걸까요?

NVL(AUTHOR_CODE,'XXXXX') NOT IN ('ROLE_SUPER_ADMIN', 'ROLE_ADMIN')

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