Oracle/DB22010. 9. 9. 10:02
http://www.kdug.kr/index.php?pgname=home/qna&brcode=qna&mode=VV&wrno=1669



alter table에서 컬럼 형 변환
관리 | 2008-09-23 17:39:22

안녕하세요
다음과 같은 테이블이 있습니다.
[db2inst1@localhost ~]$ db2 describe table t1

Column                         Type      Type
name                           schema    name               Length   Scale Nulls
------------------------------ --------- ------------------ -------- ----- ------
C3                             SYSIBM    INTEGER                   4     0 Yes
C1                             SYSIBM    VARCHAR                   7     0 Yes
C4                             SYSIBM    VARCHAR                  18     0 Yes

컬럼 C4 의 type을 varchar(5) 로 바꾸려고 합니다.
다음과 같이 명령을 했습니다.
[db2inst1@localhost ~]$ db2 "alter table t1 alter column c4 set data type varchar(5)"

DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0190N  ALTER TABLE "DB2INST1.T1" specified attributes for column "C4" that
are not compatible with the existing column.  SQLSTATE=42837

문법이 틀린것 같지는 않은데 잘 모르겠네요.
답변 부탁드립니다.
 

 
modify List
발군 2008-09-24 11:38:11
컬럼 속성을 변경하시면서 컬럼 길이를 변경하실때에는 length를 늘리는 변경은 가능하나 줄이는 변경은 불가능합니다.
이유는 기존에 존재하는 데이터의 손실을 막기 위한 부분입니다.
length를 줄이는 변경은 해당 컬럼 삭제 후 컬럼을 새로 추가하셔야 합니다.
(Oracle도 이 기능은 동일하게 제공합니다.)
kohma 2008-10-01 10:49:02
length 줄이는 것도 가능합니다. 단 data가 없을 경우만입니다..(db2, oracle 동일합니다..)
Posted by Julyus