亚型超类型与Oracle对象类型创建。限制对亚型的数量?
题
我创建在Oracle 10g中,一个对象类型时,所遇到的一个问题从一个超类型继承。目前,我们有很多的对象类型,从这个超最近编译器继承开始抛出下面的错误
ORA-30745: error occured while trying to add column "SYS_NC_ROWINFO$" in table "DATA_CACHE.CACHE_ENTRIES"
ORA-01792: maximum number of columns in a table or view is 1000
是否有亚型的数量上限,您可以生成从父继承?
解决方案
当创建具有基于用户定义类型的列表时,Oracle产生额外的“秘密”你在幕后列。例如:
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$
您已经看到,Oracle有每表1000组的列的限制。这个限制将包括从任何类型和超类型派生这些隐藏的列。它看起来像你的表已经超过了这个限制。
其他提示
使用命令:
PURGE RECYCLEBIN;
不隶属于 StackOverflow