2010-01-20 3 views
1

상위 유형을 상속 한 Oracle 10g에서 객체 유형을 생성 할 때 문제가 발생했습니다. 현재이 상위 유형에서 상속 최근 컴파일러는 다음과 같은 오류오라클 객체 유형 생성을 사용하는 서브 유형 Supertype. 하위 유형 수 제한?

ORA-01792: maximum number of columns in a table or view is 1000

ORA-30745: error occured while trying to add column "SYS_NC_ROWINFO$" in table "DATA_CACHE.CACHE_ENTRIES"

은 상속이 생성 할 수있는 서브 타입의 수에 모자가 거기를 던지기 시작 많은 개체 유형을 수퍼 유형?

답변

3

사용자 정의 유형을 기반으로하는 컬럼이있는 테이블을 생성 할 때 오라클은 사용자를 위해 추가 "비밀"열을 생성합니다. 예를 들어 :

SQL> create type emp_data_t as object (empno number, ename varchar2(30)); 
    2/

Type created. 

SQL> create table emp_data_table (id int, emp_data emp_data_t); 

Table created. 

을 표시이 표는 2 열이하기 :

SQL> desc emp_data_table 
Name      Null? Type 
-------------------------- -------- ------------------------ 
ID         NUMBER(38) 
EMP_DATA       EMP_DATA_T 

을 ...하지만 정말 네 가지가 있습니다 :

당신이 본 것처럼
SQL> select name 
    2 from sys.col$ 
    3 where obj# = (select object_id 
    4    from user_objects 
    5    where object_name='EMP_DATA_TABLE'); 

NAME 
------------------------------ 
ID 
EMP_DATA 
SYS_NC00003$ 
SYS_NC00004$ 

, 오라클에는 테이블 당 1000 개의 컬럼이 있습니다. 이 제한에는 유형 및 수퍼 유형에서 파생 된 이러한 숨겨진 열이 포함됩니다. 테이블이이 한도를 초과 한 것 같습니다.