728x90
오라클에서 컬럼 데이터타입 변경하기
테이블의 컬럼에 데이터가 있는 상태서 컬럼의 타입을 변경할 일이 생겼다.
데이터가 있는 상태에서 컬럼의 타입을 그냥 변경하면 아래와 같은 에러가 발생한다.
ORA-01439: 데이터 유형을 변경할 열은 비어 있어야 합니다
이 경우 열에 있는 데이터를 삭제하고 수정해야 한다는 것인데,
데이터를 삭제하지 않고 컬럼의 타입을 바꿔야 할 상황이 있어
여러 방법이 있겠지만, 나는 아래와 같은 방법으로 해결했다.
--1. 테이블에 새로운컬럼추가
ALTER TABLE tablename ADD newcolumn NUMBER;
--2. 기존컬럼데이터를 형변환해서 새로운컬럼에 데이터저장
UPDATE tablename SET newcolumn = TO_NUMBER(oldcolumn);
--3. 기존컬럼 삭제
ALTER TABLE tablename DROP COLUMN oldcolumn;
--4. 새로운컬럼 이름을 기존컬럼명과 동일하게 변경
ALTER TABLE tablename RENAME COLUMN newcolumn TO oldcolumn;
728x90
'STUDY > DB SQL' 카테고리의 다른 글
[SQL] 오라클 문자열 치환 - REPLACE 와 REGEXP_REPLACE (0) | 2023.07.13 |
---|---|
[SQL] 오라클 프로시저 설명과 프로시저와 함수의 차이점 (0) | 2023.07.11 |
[Oracle] SQL Developer DML명령문 자동 생성 (0) | 2023.07.03 |
[SQL] 오라클 코멘트 (comment) 조회와 설정 방법 (0) | 2023.06.27 |
[SQL] 오라클 변수 · 상수선언 (0) | 2023.06.27 |