在向表中插入大量行時,提示ora-30009錯誤的解決過程

ogam發表於2016-12-21
問題:
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行。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16712909/viewspace-2131091/,如需轉載,請註明出處,否則將追究法律責任。

相關文章