内容阅读
在知识库中专注阅读,并随时返回相关工具与课程
ORA-06533常见PL/SQL
下标超出计数
Subscript beyond count
错误描述
使用大于当前元素数量的下标引用了集合元素。与 ORA-06532 不同,下标在类型限制内但超出了实际填充的计数。
可能原因
- 未先调用 EXTEND 就访问超出 collection.COUNT 的索引
- EXTEND 调用的元素数少于所需
- 循环索引超出实际集合大小
解决方案
- 1赋值前调用 EXTEND:v_list.EXTEND; v_list(v_list.COUNT) := value;
- 2使用 collection.COUNT 作为循环上界:FOR i IN 1..v_list.COUNT LOOP
- 3访问前检查 EXISTS:IF v_list.EXISTS(idx) THEN ...
诊断命令
SELECT text FROM dba_source WHERE name = 'PROC_NAME' AND (text LIKE '%EXTEND%' OR text LIKE '%COUNT%') ORDER BY line;SELECT object_name, status FROM dba_objects WHERE object_name = 'PROC_NAME' AND object_type IN ('PROCEDURE','FUNCTION','PACKAGE BODY');#plsql#collection#subscript#extend#count