30009: CONNECT BY 操作内存不足

今天在Oracle 11g的环境上制造数据碰到ORA-30009: CONNECT BY 操作内存不足,10g开始支持XML后,改为xmltable就可以了。

SQL> drop table t_range purge;

SQL> create table t_range (id number not null PRIMARY KEY, test_date date) partition by range (test_date)
    (
    partition p_2014_7 values less than (to_date('2014-08-01', 'yyyy-mm-dd')),
    partition p_2014_8 values less than (to_date('2014-09-01', 'yyyy-mm-dd')),
    partition p_2014_9 values less than (to_date('2014-10-01', 'yyyy-mm-dd')),
    partition p_2014_10 values less than (to_date('2014-11-01', 'yyyy-mm-dd')),
    partition p_2014_11 values less than (to_date('2014-12-01', 'yyyy-mm-dd')),
    partition p_2014_12 values less than (to_date('2015-01-01', 'yyyy-mm-dd')),
    partition p_max values less than (MAXVALUE)
  ) nologging;

SQL> insert /*+append */ into t_range  select rownum,
          to_date(to_char(sysdate - 120, 'J') +
                  trunc(dbms_random.value(0, 120)),
                  'J')
      from dual
    connect by level <= 2000000;
insert /*+append */ into t_range  select rownum,
                        *
第 1 行出现错误:
ORA-30009: CONNECT BY 操作内存不足
已用时间:  00: 00: 10.28
SQL> rollback;
回退已完成。

SQL> insert /*+append */ into t_range  select rownum,
          to_date(to_char(sysdate - 120, 'J') +
                  trunc(dbms_random.value(0, 120)),
                  'J')
      from xmltable('1 to 2000000');
已创建2000000行。
已用时间:  00: 00: 28.76
SQL> commit;

Oracle 单实例 从32位 迁移到 64位 方法 

CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

Oracle导入导出expdp IMPDP详解

Oracle 10g expdp导出报错ORA-4031的解决方法

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/43b670ee91bde7ca51058e85eb1df5b3.html