내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
다운로드
trending_flat
OS 환경 : Oracle Linux 8.4 (64bit)
DB 환경 : Oracle Database 23.4.0.24.05 ai Free
에러 : ORA-63805: Maximum number of tuples in Table Value Constructor exceeded
Table Value Constructor 방식으로 insert into values 절에 값을 최대갯수 이상(65535)으로 넣을떄 발생하는 에러
샘플 테이블 생성
1
2
3
|
SQL>
drop table t1 purge;
create table t1 (col1 number);
|
샘플 데이터 삽입
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
SQL>
DECLARE
v_sql clob;
BEGIN
v_sql := 'INSERT INTO t1 VALUES ';
FOR i IN 1..65535 LOOP
IF i > 1 THEN
v_sql := v_sql || ',';
END IF;
v_sql := v_sql || '(1)';
END LOOP;
EXECUTE IMMEDIATE v_sql;
DBMS_OUTPUT.PUT_LINE('Insertion complete');
END;
/
DECLARE
*
ERROR at line 1:
ORA-63805: Maximum number of tuples in Table Value Constructor exceeded
ORA-06512: at line 13
Help: https://docs.oracle.com/error-help/db/ora-63805/
|
해결 방법 : Table Value Constructor 최대값 이하로 insert
Table Value Constructor 방식의 최대값 이하로 insert 해야함
65535가 아닌 65534까지는 데이터가 정상적으로 insert 됨
샘플 데이터 삽입
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
SQL>
DECLARE
v_sql clob;
BEGIN
v_sql := 'INSERT INTO t1 VALUES ';
FOR i IN 1..65534 LOOP
IF i > 1 THEN
v_sql := v_sql || ',';
END IF;
v_sql := v_sql || '(1)';
END LOOP;
EXECUTE IMMEDIATE v_sql;
DBMS_OUTPUT.PUT_LINE('Insertion complete');
END;
/
PL/SQL procedure successfully completed.
|
정상적으로 insert됨
원인 : Table Value Constructor 제약문제
Table Value Constructor 제약문제
제약조건을 확인한 뒤 기능을 사용해야함
참조 :
https://apex.oracle.com/pls/apex/features/r/dbfeatures/features?feature_id=1711
https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/IN-Condition.html#SQLRF-GUID-C7961CB3-8F60-47E0-96EB-BDCF5DB1317C
'ORACLE > Trouble Shooting' 카테고리의 다른 글
ORA-27350: This version of the Oracle Database software cannot be run on this platform. (0) | 2024.08.09 |
---|---|
CORRUPTION DETECTED: thread 1 sequence 8 log 2 at block 42224. Arch found corrupt blocks (0) | 2024.07.22 |
[DBT-05509] Failed to connect to the specified database (Free). (0) | 2024.04.24 |
ORA-27086: unable to lock file - already in use (0) | 2024.04.24 |
ORA-09968: unable to lock file (0) | 2024.04.20 |