현상
insert 수행 도중 Internal Error with condition '(rowno < rowcnt)' (3 args) 가 발생합니다.
create table t1 (a number, b number);
insert into t1 select level, level from dual connect by level < 1000;
create table t (a number, b number); create index i on t(a, b);
alter table t add constraint pk primary key (a, b) using index i;
insert into t select * from t1;
##sys.log
Internal Error with condition '(rowno < rowcnt)' (3 args) (td_ilblk.c:1025:td_ilblk_sclear) (pid=259227, sessid=186, tid=186)
SQL
복사
원인
non-unique index를 사용하여 primary key를 생성하는 경우, insert 수행 시 에러가 발생합니다.
해결
split 수행 시 새로운 key를 index에 입력하는 과정에서 dummy row인 경우 dummy flag를 설정할 수 있도록, 패치를 적용해 해결합니다. (적용패치: 253866a)
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.
참고
패치 적용 대안으로서, 에러가 발생하는 index를 unique index로 재 생성해 현상을 해결할 수 있습니다.
drop index i; → 기존 non unique index 삭제
create unique index i on t(a, b); → unique index 재생성
SQL
복사