티스토리 뷰
-- 테이블 데이터 백업
CREATE TABLE t_user_back_20220107 AS SELECT * FROM t_user WHERE COMPANYCODE = '회사코드';
-- 테이블 데이터 원복
MERGE INTO T_USER tu USING T_USER_BACK_20220107 tub ON (tu.userNo=tub.userNo)
WHEN MATCHED THEN UPDATE SET tu.loginId=tub.loginId, tu.authKey=tub.authKey, tu.userKey=tub.authKey;
-- loginId, authKey, userKey 기존 5자리에서 8자리로 업데이트
-- 기존 5자리가 모두 숫자로 되어 있는 경우만 업데이트
UPDATE t_user SET
loginId = '000' || loginId
, authKey = CASE WHEN LENGTH(authKey) = 5 THEN '000' || authKey ELSE authKey END
, userKey = CASE WHEN LENGTH(userKey) = 5 THEN '000' || userKey ELSE userKey END
WHERE COMPANYCODE = '회사코드' AND REGEXP_INSTR(LOGINID ,'[^0-9]') = 0 AND LENGTH(loginId) = 5
-- 이미 8자리 존재할때 제외
AND ('000' || loginId) NOT IN (
SELECT loginId FROM (
SELECT userNo, CASE WHEN LENGTH(loginId) = 5 THEN '000' || loginId ELSE loginId END AS loginId FROM t_user WHERE COMPANYCODE = '회사코드' AND REGEXP_INSTR(LOGINID ,'[^0-9]') = 0
) t
GROUP BY loginId
HAVING COUNT(*) > 1
);
'DB > Oracle' 카테고리의 다른 글
[oracle] lock 해제 (0) | 2021.10.14 |
---|---|
[Oracle] group by 소계 (0) | 2021.03.02 |
[Oracle] ORA-02292: 무결성 제약조건 확인 (0) | 2020.02.24 |
[Oracle] 데이터 복원 (0) | 2020.02.20 |
[Oracle SQL Developer] 데이터베이스 복사 (0) | 2020.02.11 |