前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle表中允许支持的最大列数是多少?

Oracle表中允许支持的最大列数是多少?

作者头像
bisal
发布2019-11-12 22:37:43
2.8K0
发布2019-11-12 22:37:43
举报
文章被收录于专栏:bisal的个人杂货铺

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://cloud.tencent.com/developer/article/1537731

微信群中有朋友问了个问题,Oracle一张普通堆表,最大支持多少个字段?

在Oracle 11g的官方文档中,指出一张表最大支持的列个数是1000个,

我们可以通过创建一张超过1000个列的测试表来验证这个问题。

测试1

  1. 我们创建一张表,包含1个字段。
  2. 通过PL/SQL块,循环999次,每次都使用alter table add column增加一个列。
  3. 通过user_tab_columns视图确认,当前表含有1000个列。
  4. 执行alter table add column,尝试增加第1001个列,此时提示了ORA-01792错误,指出表或视图中允许的列最大个数是1000,得到验证,
代码语言:javascript
复制
SQL> create table a (id number);
Table created.

SQL> begin
  2    for i in 1..999 loop
  3      execute immediate 'alter table a add a'||i||' number(1)';
  4    end loop;
  5  end;
  6  /
PL/SQL procedure successfully completed.

SQL> select count(*)from user_tab_columns where table_name='A';
  COUNT(*)
----------
      1000

SQL> alter table a add c number(1);
alter table a add c number(1)
                  *
ERROR at line 1:
ORA-01792: maximum number of columns in a table or view is 1000

测试2

定义一个PL/SQL块,通过字符串拼接,得到一个包含1001个列的create table语句,执行会提示报错,指出表或视图中允许的列最大个数是1000,

代码语言:javascript
复制
SQL> declare
  2    query varchar2(20000) := 'create table t01(';
  3  begin
  4    for i in 1..1001 loop
  5      query := query||'col'||i||' int,';
  6    end loop;
  7    query := query||'colx int)';
  8    execute immediate query;
  9  end;
 10  /
declare
*
ERROR at line 1:
ORA-01792: maximum number of columns in a table or view is 1000
ORA-06512: at line 8

由此引申出来,如果Oracle不同版本,对表列数有不同的个数要求,都可以用上述操作进行验证,因此,重要的是实践,不仅是记住结论,正所谓授人以鱼,不如授人以渔,就是这意思了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/11/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档