ora-06530:未初始化的组合
来源:互联网 发布:mysql 日期时间格式化 编辑:程序博客网 时间:2024/04/29 16:56
ora-06530:未初始化的组合
首先定义两个schema级别的类型:
create or replace type typ_info as object(name varchar2(10), sex varchar2(1));
create or replace type typ_infos as table of typ_info; --NESTED TABLE
然后测试:
SQL> declare
2 v_infos typ_infos := typ_infos();
3 begin
4 v_infos.extend;
5 v_infos(1).name := 'lyon';
6 v_infos(1).sex := 'M';
7 end;
8 /
declare
v_infos typ_infos := typ_infos();
begin
v_infos.extend;
v_infos(1).name := 'lyon';
v_infos(1).sex := 'M';
end;
ORA-06530: 引用未初始化的组合
ORA-06512: 在 line 6
出现此错误的原因看上去很明显,未初始化嘛。但是要看到,其实我在变量定义的时候已经初始化了:
v_infos typ_infos := typ_infos();
但是为何还会提示该错误呢?
会不会是schema级别的类型需要额外的初始化呢?
提出这个疑问主要是因为内部类型定义只要使用这种初始化方式就可以了:
SQL> declare
2 type typ_info is record(name varchar2(10), sex varchar2(1));
3 type typ_infos is table of typ_info;
4 v_infos typ_infos := typ_infos();
5 begin
6 v_infos.extend;
7 v_infos(1).name := 'lyon';
8 v_infos(1).sex := 'M';
9 end;
10 /
PL/SQL procedure successfully completed
百思不得其解,于是还是借助Google和百度,最终在asktom上找到了原因所在:
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:210612357425
原来schema级的初始化还需要额外的操作:
SQL> declare
2 v_infos typ_infos := typ_infos();
3 begin
4 v_infos.extend;
5 v_infos(1) := typ_info(null, null);
6 v_infos(1).name := 'lyon';
7 v_infos(1).sex := 'M';
8 end;
9 /
PL/SQL procedure successfully completed
即上面红色部分。这样就完成了初始化。
另外,是不是觉得还可以简化一下?是的,直接在初始化时就赋值:
SQL> declare
2 v_infos typ_infos := typ_infos();
3 begin
4 v_infos.extend;
5 v_infos(1) := typ_info('lyon', 'M');
6 end;
7 /
PL/SQL procedure successfully completed
总结:schema级的初始化需要其上一级类型进行赋值,而内部类型则只需要在定义时初始化即可。
- ora-06530:未初始化的组合
- ORA-06531: 引用未初始化的收集 的问题解决
- 解决方法:ORA-24324 未初始化服务句柄
- ORA-24324 未初始化服务句柄 错误
- ora-24324 未初始化服务句柄
- startup 出现的监听错误或者未初始化服务句柄,ORA-24324: 未初始化服务句柄,ORA-01041: 内部错误, hostdef 扩展名不存在
- 未初始化的指针
- 未初始化的教训
- 关于ORA-24324:未初始化服务句柄 ORA-01041:内部错误,hostdef扩展名不存在 错误的原因推测
- 解决方法:ORA-24324:未初始化服务句柄 错误
- 初始化和未初始化的全局变量
- 未初始化的存储uninitialized_x
- 变量未初始化的可能性
- 组合对象的初始化列表
- Oracle:ORA-24324: 未初始化服务句柄 ORA-24323: 不允许此值 ORA-01090: 正在关闭 - 不允许连接
- Oracle:ORA-24324: 未初始化服务句柄 ORA-24323: 不允许此值 ORA-01090: 正在关闭 - 不允许连接
- Oracle:ORA-24324: 未初始化服务句柄 ORA-24323: 不允许此值 ORA-01090: 正在关闭 - 不允许连接
- 变量未初始化引起的release错误
- 从OPCserver中读取数据
- delete和delete[]的区别
- 一个高效的导出Excel方法,并且已解决导出会有样式文件夹的问题
- 为linux内核添加新驱动,并添加到menuconfig菜单【实践简记】
- java中在Ext环境中实现带验证码的登陆窗口
- ora-06530:未初始化的组合
- HighCharts 非规律日期 多条曲线的 绘画
- 谈谈Windows程序中的字符编码
- 从程序员到项目经理(12):如何管理自己的时间(上)
- C#读取XML时自动过滤掉注释部分
- c++ 内存泄露,野指针,空指针三个概念的清新解释
- scanf
- asp.net前台嵌入代码
- [sicily online]1159. Sum(字符串加法)