1、在PKG包体内建数组
TYPE rec_client IS RECORD(
policy_no VARCHAR2(16),
payee_no VARCHAR2(100),
pay_no VARCHAR2(16),
amount NUMBER(16, 2));
TYPE list_client_amt IS TABLE OF rec_client INDEX BY BINARY_INTEGER;
定义变量
v_client_list list_client_amt;
v_client_list.delete;
赋值
直接给数组的下标赋值即可。
数组的使用方法
数组做为存储过程的出参例子
1、定义TYPE
CREATE OR REPLACE TYPE rec_cal_ins_prem AS Object(
APPLY_NO VARCHAR2(20)
......
)
2、在TYPE基础上定义数组
CREATE OR REPLACE TYPE NBUCDE.array_cal_ins_prem as table of nbucde.rec_cal_ins_prem
3、使用数组
(1)设为出参 p_array_cal_ins_prem out nbucde.array_cal_ins_prem,
(2)初始化 p_array_cal_ins_prem := NEW nbucde.array_cal_ins_prem();
(3)在循环中下标自增 v_count := v_count + 1;
(4)数组扩展一位 p_array_cal_ins_prem.extend;
(5)新建TYPE,并给刚扩展的数组赋值 p_array_cal_ins_prem(v_count) := NEW nbucde.rec_cal_ins_prem(null,null,null,null);
(6)可以给数组中的TYPE的具体元素赋值 p_array_cal_ins_prem(v_count).product_code := v_product.product_code;
4、循环数组设值或取值
v_record_prod_num := 1;
WHILE v_record_prod_num <= v_apply_questionnaire.COUNT LOOP
IF v_apply_questionnaire(v_record_prod_num).question_id = '7001' THEN
....
END IF;
END LOOP;
具体实现参考l_uw_public_package.get_cal_ins_prem_base