2015-01-19 4 views
4

데이터 삭제 및 이동없이 원합니다.오라클 | ORA-01439 : 데이터 형을 변경하려면, 변경하는 열이 하늘 일 필요가 있습니다. 데이터 유형 번호를 nvarchar로 변경할 수 없습니다. oracle 10g

데이터 유형 번호를 nvarchar로 변경할 수 없습니다. Oracle 10g. ORA-01439 : 수정할 열과 같은 표시 메시지는 데이터 유형을 변경하기 위해 비어 있어야합니다.

테이블에 데이터가 있고 열이 이미 NOT NULL로 설정되어 있으므로 null 또는 공백으로 설정할 수 없습니다. 그리고 변경 열은 외래 키와 관련된 테이블의 수와 관련된 기본 키입니다.

해결할 빠른 해결책이 있습니까?

+0

왜 10g 및 11g 태그가 모두 있습니까? 당신이 11g에 있다면, 나는 내 대답에서 제안한 것처럼 가상 컬럼을 위해 더 잘 가라. –

답변

4

하기 권장 방법 :

  1. 일시 중단 제약
  2. 은 NVARCHAR 유형이 다른 컬럼을 작성
  3. 새로운 NVARCHAR 컬럼 번호 열에서
  4. 복사
  5. 삭제 번호 열
  6. 받는 NVARCHAR 열 이름 바꾸기 이전 버전
  7. 재생성 색인
  8. 제약 조건을 활성화하십시오.

오라클의 열 유형을 다른 방법으로 변경할 수 없습니다 (알고있는 것).

+0

OP도 11g 태그를 언급했지만 가상 열도 좋은 접근 방법입니다. –

3
  1. 새 열을 새 이름으로 추가하십시오.
  2. 이전 열의 새 열을 업데이트하십시오.
  3. 이전 열을 삭제하십시오.
  4. 새 열의 이름을 이전 열 이름으로 바꿉니다.

참고 내가, 당신은 또한 오라클 11g 태그를 언급 한 참조 그러나 귀하의 질문은 10g에 있습니다 말한다. 11g 이상인 경우 가상 대을 사용할 수 있습니다.