【发布时间】:2009-12-11 19:08:20
【问题描述】:
以下查询在 10g 中生成以下错误:
select DBMS_METADATA.GET_DDL('TABLE','TEST_TABLE','TEST') from dual;
得到:
ORA-04031: unable to allocate 128 bytes of shared memory ("shared pool","SELECT /*+rule*/ SYS_XMLGEN(...","sql area","qeeOpt: qeesCreateOpt")
ORA-06512: at "SYS.DBMS_METADATA", line 1546
ORA-06512: at "SYS.DBMS_METADATA", line 1583
ORA-06512: at "SYS.DBMS_METADATA", line 1901
ORA-06512: at "SYS.DBMS_METADATA", line 2792
ORA-06512: at "SYS.DBMS_METADATA", line 4333
ORA-06512: at line 1
从一些阅读来看,这个问题似乎可以通过调整 Oracle 的一些共享内存参数来解决。
但是,任何人都可以就错误的可能原因提供一些额外的信息吗?这只是一个没有大约 10 列的表,所以如果查询本身是问题的根源,我会感到惊讶。此外,Toad 可以很好地显示我的所有 DDL。
我应该寻找什么?还是我应该将此错误发送给我的 DBA 并说“请修复?”
【问题讨论】:
-
将其发送给您的 DBA。这就是他们付给他们半大钱的原因。
标签: sql oracle plsql oracle10g