从字符串中提取逐一提取数字id

最近在OAF打印时,需要根据页面所勾选的数据进行打印。

在OAF获取勾选的行id后,构成一个字符串(如‘1,3,5’)后传入后台处理的PKG中。

故而,需要从这个含有行号的字符串分离出行号id。

为了方便处理,特地写了一个过程,将行号id,逐一存入一张临时表中。


PROCEDURE get_delivery_plan_id(p_plan IN VARCHAR2) IS


    l_location       NUMBER := 0;
    l_names_adjusted VARCHAR2(5000);
    l_prev_location  NUMBER :=0;
    
    BEGIN
      l_names_adjusted := p_plan_id||‘,’;   --在字符串后添加一个逗号
      LOOP 
        l_location := INSTR(l_names_adjusted,‘,’,l_location + 1);   --获取逗号位置,返回0则表示不存在
        EXIT WHEN l_location = 0;
        
        INSERT INTO B_ASCP_ASN_PLAN_TEMP(delivery_plan_id)    --将id 存入临时表
             VALUES (TO_NUMBER(SUBSTR(l_names_adjusted,    --substr 截取字符串,截取位于两个逗号之间的数字id
                                      l_prev_location + 1,
                                      l_location - l_prev_location - 1)));
        l_prev_location := l_location;
      END LOOP;
 
  END get_delivery_plan_id;


如上的方法便可实现提取ID.




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值