数组

本文介绍了在PL/SQL中如何定义记录类型的数组,并详细解释了数组的基本操作,包括删除、赋值及作为存储过程的出参数使用的方法。通过具体的步骤和示例,帮助读者更好地理解和掌握PL/SQL中数组的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值