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