存储过程中一维数组接受按分割符拆分的数据

declare 
  -- Local variables here
  i integer;
  Lar_Input t_Arr.Arrname; --一维数组接收   按分隔符拆分
begin
  -- Test statements here
  Pkg_n_Cst_String.Prc_Parsetoarr('A|B|C|D|E|', '|', Lar_Input);---将字符按照对应分隔缝
   dbms_output.put_line( to_char(Lar_Input(1)) ) ;  
      dbms_output.put_line( to_char(Lar_Input(2)) ) ;  
   dbms_output.put_line( to_char(Lar_Input(3)) ) ;  
end;

 PRO CEDURE prc_parsetoarr(prm_source    IN VARCHAR2, --字符串
                           prm_delimiter IN VARCHAR2, --分隔符号
                           prm_array     OUT t_arr.arrname --输出数组
                           ) IS
    i      NUMBER;
    ln_pos NUMBER;
    lv_vc  VARCHAR2(2000);
  BEGIN
    prm_array := t_arr.arrname(); --数组初始化
    i         := 1;
    ln_pos    := 1;
    lv_vc     := prm_source;
    IF lengthb(lv_vc) > 0 THEN
      WHILE ln_pos > 0 LOOP
        ln_pos := instrb(lv_vc, prm_delimiter);
        prm_array.EXTEND;
        IF ln_pos > 0 THEN
          prm_array(prm_array.COUNT) := TRIM(substrb(lv_vc, 1, ln_pos - 1));
          lv_vc := TRIM(substrb(lv_vc, ln_pos + lengthb(prm_delimiter)));
        ELSE
          prm_array(prm_array.COUNT) := TRIM(lv_vc);
        END IF;
        i := i + 1;
      END LOOP;
    END IF;
  EXCEPTION

    WHEN OTHERS THEN
      NULL;
  END;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值