실수로데이터를 삭제(DELETE) 하고 COMMIT 까지 완료한 경우 삭제 전의 데이터를 TIMESTAMP를 사용하여 조회/복구 할 수 있으니..당황하지 말자..
-- 1. 데이터 삭제 DELETE FROM T_OUT; -- COMMIT:
-- 2. 삭제 5분 전 데이터 복구 INSERT INTO T_OUT (AA,BB,CC,REG_DT) SELECT AA,BB,CC,REG_DTFROM T_OUT AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '5' MINUTE) -- SECOND, MINUTE, HOUR, DAY
COLUMN : 컬럼명 REG_EXP : 정규표현식 [^@]+ : @ 기준으로 split START_INDEX : 정규표현식을 검색할 문자열의 시작 INDEX 지정. GROUP_INDEX : 해당 정규표현식으로 잘라진 그룹이 2개 이상이라면 INDEX 를 지정해 그룹을 선택할 수 있다.
SELECT REGEXP_SUBSTR('retriver@gmail.com', '[^@]+', 1, 1) AS EMAIL_ID -- 'r' 부터 검색
, REGEXP_SUBSTR('retriver@gmail.com', '[^@]+', 3, 1) AS EMAIL_ID_CUT -- 't' 부터 검색
, REGEXP_SUBSTR('retriver@gmail.com', '[^@]+', 1, 2) AS EMAIL_DOMAIN
FROM DUAL
[Study] 구분자(^)로 구분한 값들을 분리하여 가져오기
SELECT REGEXP_SUBSTR('0001^0002^0003','[^^]+', 1, 1) AS COL_1
, REGEXP_SUBSTR('0001^0002^0003','[^^]+', 1, 2) AS COL_2
, REGEXP_SUBSTR('0001^0002^0003','[^^]+', 1, 3) AS COL_3
FROM DUAL
[Study] Connect By 를 사용하여 list형태로 가져오기
SELECT REGEXP_SUBSTR('0001^0002^0003','[^^]+', 1, LEVEL) COL FROM DUAL
CONNECT BY REGEXP_SUBSTR('0001^0002^0003', '[^^]+', 1, LEVEL) IS NOT NULL
특정문자만 추출
SELECT A.TEST_NM, REGEXP_REPLACE(A.TEST_NM, '[^0-9,-]') AS TEST_TEL
FROM TEST A