内容阅读
在知识库中专注阅读,并随时返回相关工具与课程
ORA-06500严重PL/SQL
PL/SQL:存储错误
PL/SQL: storage error
错误描述
PL/SQL 在执行程序单元时耗尽内存。这通常发生在 PL/SQL 块需要的内存超出 PGA 可用量时。
可能原因
- 递归 PL/SQL 调用消耗过多栈空间
- PL/SQL 中分配了非常大的集合或 CLOB 变量
- PGA_AGGREGATE_TARGET 或 PGA_AGGREGATE_LIMIT 设置过低
解决方案
- 1增加 PGA 内存:ALTER SYSTEM SET pga_aggregate_target=2G SCOPE=BOTH;
- 2检查 PL/SQL 代码是否存在无限递归或无界集合增长
- 3使用 BULK COLLECT 配合 LIMIT 子句分批处理数据
诊断命令
SELECT * FROM v$pgastat WHERE name LIKE '%aggregate%';SELECT sid, serial#, pga_used_mem, pga_alloc_mem, pga_max_mem FROM v$process p JOIN v$session s ON p.addr = s.paddr ORDER BY pga_alloc_mem DESC;#plsql#memory#pga#storage