현상
alter table ~ modify column 문으로 column 사이즈 변경 시 TBR-11025: Data is too long for the column 에러가 발생합니다.
재현 시나리오
[ TEST TABLE 생성 ]
CREATE TABLE T243395
(
REC_KEY NUMBER NOT NULL
,MARC LONG
,CREATE_LIB CHAR(6)
,KDC_CLASS_NO VARCHAR(22)
)
/
INSERT INTO T243395 ( REC_KEY , MARC, KDC_CLASS_NO)
SELECT LEVEL ,
DBMS_RANDOM.STRING('U', 10000) ,
DBMS_RANDOM.STRING('U', 22) FROM DUAL
CONNECT BY LEVEL < 100
/
SQL
복사
[ 패치 전 ]
SQL> ALTER TABLE T243395 MODIFY KDC_CLASS_NO VARCHAR(50);
TBR-11025: Data is too long for the column.
SQL
복사
원인
Modify column 작업 시, 변경해야 될 column no의 segment column no를 data api와 연결해주는 내부 함수로 전달합니다. 전달 받은 segment column no 를 col no로 처리하여 문제가 발생합니다.
해결
내부 함수에서 전달 받은 segment column no 에 맞는 로직으로 변경합니다. (적용 패치 : 243395)
[ 패치 후 ]
SQL> ALTER TABLE T243395 MODIFY KDC_CLASS_NO VARCHAR(50);
Table 'T243395' altered.
SQL
복사
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.