ORACLE 分割字符串的函数实现

以下函数在package下实现:

包体:

  TYPE TYPE1 IS TABLE OF VARCHAR2(10);
  --分割字符串函数                            
  FUNCTION SPLIT(P_ITEMID IN VARCHAR2, P_SPLIT IN VARCHAR2) RETURN  TYPE1; 

包内容:

--分割字符串函数                            
  FUNCTION SPLIT(P_ITEMID IN VARCHAR2, P_SPLIT IN VARCHAR2) RETURN TYPE1 IS
    V_ITEMID   VARCHAR2(4000);
    V_ITEM_IDS TYPE1;
    V_IDX      pls_integer;
    V_CNT      NUMBER;
    V_ITEM     VARCHAR2(10);
  BEGIN
    V_ITEM_IDS := TYPE1();
    V_CNT      := 0;
    V_ITEMID   := P_ITEMID;
    LOOP
      --初始化一个空间
      V_ITEM_IDS.EXTEND(1);
      V_CNT := V_CNT + 1;
      V_IDX := INSTR(V_ITEMID, P_SPLIT);
    
      IF V_IDX > 0 THEN
        V_ITEM := SUBSTR(V_ITEMID, 1, V_IDX - 1);
        DBMS_OUTPUT.put_line(V_ITEM || ' 网点ID ' || V_CNT);
        V_ITEM_IDS(V_CNT) := SUBSTR(V_ITEMID, 1, V_IDX - 1);
        V_ITEMID := SUBSTR(V_ITEMID, V_IDX + LENGTH(P_SPLIT));
      ELSE
        V_ITEM_IDS(V_CNT) := V_ITEMID;
        EXIT;
      END IF;
    END LOOP;
    RETURN V_ITEM_IDS;
  END SPLIT;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值