内容阅读
在知识库中专注阅读,并随时返回相关工具与课程
ORA-06532常见PL/SQL
下标超出限制
Subscript outside of limit
错误描述
使用超过 VARRAY 声明的最大大小的下标引用了 VARRAY 元素。
可能原因
- 下标超过类型声明中定义的 VARRAY 最大大小
- 下标为零或负数(Oracle 集合从 1 开始)
- 动态索引变量计算不正确
解决方案
- 1增加 VARRAY 限制:CREATE OR REPLACE TYPE my_varray AS VARRAY(1000) OF ...
- 2访问前验证下标:IF idx BETWEEN 1 AND v_arr.LIMIT THEN ...
- 3如果需要无界增长,请切换到嵌套表
诊断命令
SELECT type_name, upper_bound FROM dba_coll_types WHERE owner = 'SCHEMA' AND coll_type = 'VARYING ARRAY';SELECT text FROM dba_source WHERE name = 'PROC_NAME' AND text LIKE '%EXTEND%' ORDER BY line;#plsql#varray#subscript#collection