在向表中插入大量行时,提示ora-30009错误的解决过程

博客记录了SQL插入大量数据时遇到的问题及解决办法。最初执行插入语句出现‘CONNECT BY操作内存不足’错误,尝试用append提示和xmltable函数仍报错,后通过以sysdba身份连接数据库,设置‘_allow_level_without_connect_by’为true,最终成功插入10000000行数据。

问题:
SQL> insert into log_ select level lv,rownum rn from dual connect by level<=10000000;
insert into log_ select level lv,rownum rn from dual connect by level<=10000000
            *
第 1 行出现错误:
ORA-30009: CONNECT BY 操作内存不足


解决第一步:
SQL> insert /*+append*/ into log_ select level lv,rownum rn from xmltable('1 to 10000000');
insert /*+append*/ into log_ select level lv,rownum rn from xmltable('1 to 10000000')
                        *
第 1 行出现错误:
ORA-01788: 此查询块中要求 CONNECT BY 子句


解决第二步:
SQL> conn /as sysdba
已连接。
SQL> alter system set "_allow_level_without_connect_by"=true;
系统已更改。


解决第三步:
SQL> conn hr/hr
已连接。
SQL> insert into log_ select level lv,rownum rn from xmltable('1 to 10000000');
已创建10000000行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值