12c和ORA-01792:表或视图中的最大列数为1000

时间:2015-09-14 18:13:43

标签: oracle oracle12c

我在一个表中包含超过1000列的数据库/表继承了需要迁移到Oracle 12c数据库的数据库/表。是否存在12c可以帮助我们克服1000列限制(例如以某种方式对表进行分区)?不幸的是,规范化表格不是一种选择。

3 个答案:

答案 0 :(得分:3)

最多1000列始终在Oracle中。您唯一能做的就是将列拆分为多个表并加入它们。查询可以返回超过1000列。刚测试8160工作,更多返回ORA-00913:太多的值。遗憾的是,您无法从查询中创建视图,因为它与表格具有相同的1000列限制。

另请注意,Oracle在单个块中最多只能容纳255个列,因此当表有更多列时会产生某些后果。

答案 1 :(得分:0)

12c仍然有1000的限制

https://docs.oracle.com/database/121/REFRN/GUID-685230CF-63F5-4C5A-B8B0-037C566BDA76.htm#REFRN0043

这是一个很长的镜头,但你可以看一下使用JSON数据类型,以便在单个列中有效地存储更多的原子值。 https://docs.oracle.com/database/121/ADXDB/json.htm#ADXDB6246

答案 2 :(得分:0)