我有 Linux VM(使用CentOS 64位),我安装了 Oracle Database 11g Express Edition 。数据库正在运行,我可以使用sqlplus,我可以创建表和东西。但是,当我运行某个插入大量随机数据(大约200万行)的SQL脚本时,我收到此错误:
ORA-30009: Not enough memory for CONNECT BY operation
我已尝试使用以下命令增加PGA_AGGREGATE_TARGET
。据我所知,这应解决问题(但事实并非如此),因为它会增加内存。
ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 40M scope = both;
然而,问题是我不能将PGA_AGGREGATE_TARGET
设置为高于~40M(这似乎是不够的)。如果我尝试将其设置为100M或更高,我会收到另一个错误:
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-47500: XE edition memory parameter invalid or not specified
我知道如何解决这个问题吗?我完全可以重新安装整个数据库或其他任何内容。
PS:我在dba.stackexchange.com上问了同样的问题,因为我不确定它是编程还是数据库管理。
答案 0 :(得分:0)
您正在使用Oracle 11g Express版本,它有一定的限制,例如数据库大小不会超过11g而内存SGA + PGA的增长不会超过1 GB。这意味着,你遇到了这种限制。如果您无法扩展PGA,则需要先降低SGA大小,然后重试。我会成功的。