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

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

697b80b8088c2da8bb9dc9c8d470dff7.png

我们可以通过创建一张超过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,得到验证,

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,

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不同版本,对表列数有不同的个数要求,都可以用上述操作进行验证,因此,重要的是实践,不仅是记住结论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值