create or replace type result_rule as object
(
fee_type varchar2(1),
fee_code varchar2(10),
reserve1 varchar2(20),
reserve2 varchar2(20)
);
create or replace type result_rule_arr as table of result_rule;
如下:
declare
arr result_rule_arr;
begin
arr := result_rule_arr();
arr.extend(10);
arr(1).fee_type := 'a';
end;
红色那一行会报ORA-06530 引用未初始化的组合。
查了好久,无果~ 在线等~
4 个解决方案
#1
declare
arr result_rule_arr;
begin
arr := result_rule_arr();
arr.extend(10);
arr(1) := result_rule( 'a','b','c','d');
end;
arr result_rule_arr;
begin
arr := result_rule_arr();
arr.extend(10);
arr(1) := result_rule( 'a','b','c','d');
end;
#2
根据你的定义,arr是result_rule_arr类型,而它又是result_rule的表类型;
所以呢,arr中应该存放result_rule类型,而你在那行红色代码段中却给它赋值'a',当然要出错了
所以呢,arr中应该存放result_rule类型,而你在那行红色代码段中却给它赋值'a',当然要出错了
#3
感谢两位,两位的话,令我茅塞顿开
#4
顶起!
#1
declare
arr result_rule_arr;
begin
arr := result_rule_arr();
arr.extend(10);
arr(1) := result_rule( 'a','b','c','d');
end;
arr result_rule_arr;
begin
arr := result_rule_arr();
arr.extend(10);
arr(1) := result_rule( 'a','b','c','d');
end;
#2
根据你的定义,arr是result_rule_arr类型,而它又是result_rule的表类型;
所以呢,arr中应该存放result_rule类型,而你在那行红色代码段中却给它赋值'a',当然要出错了
所以呢,arr中应该存放result_rule类型,而你在那行红色代码段中却给它赋值'a',当然要出错了
#3
感谢两位,两位的话,令我茅塞顿开
#4
顶起!