内容阅读
在知识库中专注阅读,并随时返回相关工具与课程
ORA-06531常见PL/SQL
引用未初始化的集合
Reference to uninitialized collection
错误描述
在使用构造函数初始化之前引用了集合(嵌套表或 VARRAY)。集合必须先初始化才能添加或访问元素。
可能原因
- 嵌套表或 VARRAY 已声明但未使用构造函数初始化
- 集合被显式或隐式设置为 NULL 后又被访问
- 函数在某些条件下返回 NULL 集合
解决方案
- 1初始化集合:v_list := my_table_type();
- 2始终在 DECLARE 部分初始化:v_list my_table_type := my_table_type();
- 3访问前检查 NULL:IF v_list IS NOT NULL THEN ...
诊断命令
SELECT type_name, typecode, attributes FROM dba_types WHERE owner = 'SCHEMA' AND typecode IN ('COLLECTION','TABLE','VARRAY');SELECT text FROM dba_source WHERE name = 'PROC_NAME' ORDER BY line;#plsql#collection#nested-table#varray#uninitialized