오라클 CLOB → NUMBER 변환, 날짜 포맷, 문자열 날짜 변환 총정리
실무에서 오라클(Oracle) DB를 다루다 보면 CLOB 타입을 NUMBER로 변환하거나, 날짜/문자열 포맷을 변환해야 할 때가 많습니다.
아래에 자주 쓰는 쿼리와 예제를 정리해두었으니, 비슷한 상황에서 참고하세요!
1. CLOB 컬럼을 NUMBER(10,0)로 변환하는 방법
- 숫자값만 있는지 확인
- 임시 NUMBER 컬럼 추가
- CLOB → NUMBER 데이터 변환
- 기존 컬럼 삭제
- 임시 컬럼 이름 변경
-- 1. 숫자값 검증
SELECT IZ06_SIGN_ID
FROM your_table
WHERE REGEXP_LIKE(dbms_lob.substr(IZ06_SIGN_ID, 100), '[^0-9]');
-- 2. 임시 컬럼 추가
ALTER TABLE your_table ADD (IZ06_SIGN_ID_TMP NUMBER(10,0));
-- 3. 데이터 변환
UPDATE your_table
SET IZ06_SIGN_ID_TMP = TO_NUMBER(dbms_lob.substr(IZ06_SIGN_ID, 100));
-- 4. 기존 컬럼 삭제
ALTER TABLE your_table DROP COLUMN IZ06_SIGN_ID;
-- 5. 임시 컬럼 이름 변경
ALTER TABLE your_table RENAME COLUMN IZ06_SIGN_ID_TMP TO IZ06_SIGN_ID;
2. 오라클에서 현재 시간을 년월일시분초 문자열로 저장하기
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS 현재시간
FROM DUAL;
예시 결과: 2025-04-23 10:33:45
3. '20250423103345' 같은 문자열을 날짜 포맷으로 변환
SELECT TO_CHAR(TO_DATE('20250423103345', 'YYYYMMDDHH24MISS'), 'YYYY-MM-DD HH24:MI:SS') AS formatted_date
FROM dual;
예시 결과: 2025-04-23 10:33:45
반응형
'개발 > SQL' 카테고리의 다른 글
sql 전화번호 format REGEXP_REPLACE (0) | 2022.06.29 |
---|---|
mariadb 데이터베이스 생성 (0) | 2021.06.10 |
MariaDB 날짜 함수 (0) | 2019.01.25 |
ORA-28001, 오라클 패스워드 만료 (0) | 2019.01.02 |
DB관련 유용한 사이트 링크 (0) | 2018.11.29 |