Oracle 수정 필드 유형 방법 요약

tb 라 는 표 가 있 습 니 다. 필드 이름 은 name 이 고 데이터 형식 은 nchar (20) 입 니 다.
필드 데이터 가 비어 있다 고 가정 하면 필드 형식 을 바 꾸 든 직접 실행 할 수 있 습 니 다.
alter table tb modify (name nvarchar2(20));

필드 에 데이터 가 있다 고 가정 하면 nvarchar 2 (20) 로 바 꾸 면 직접 실행 할 수 있 습 니 다.
alter table tb modify (name nvarchar2(20));

필드 에 데이터 가 있다 고 가정 하면 varchar 2 (40) 로 실행 할 때 팝 업 됩 니 다. "ORA - 01439: 데이터 형식 을 변경 하려 면 수정 할 열 이 비어 있어 야 합 니 다." 이 문 제 를 다음 방법 으로 해결 해 야 합 니 다.
/*      name name_tmp*/
alter table tb rename column name to name_tmp;

/*              name*/
alter table tb add name varchar2(40);

/*    name_tmp          name*/
update tb set name=trim(name_tmp);

/*   ,     name_tmp*/
alter table tb drop column name_tmp;

요약: 1. 필드 에 데이터 가 없 거나 수정 할 새로운 형식 이 원래 형식 과 호 환 될 때 직접 modify 로 수정 할 수 있 습 니 다.2. 필드 에 데이터 가 있 고 수정 할 새로운 형식 과 원래 형식 이 호 환 되 지 않 을 때 간접 적 으로 새 필드 를 옮 겨 야 합 니 다.
원문https://blog.csdn.net/gdjlc/article/details/23762549/

좋은 웹페이지 즐겨찾기