oracle用分隔符解析字符串6,oracle以分隔符回循环字符串

oracle以分隔符来循环字符串

CREATE OR REPLACE PROCEDURE TEST(P_DETAIL_RESULT_COUNT IN VARCHAR2) AS

V_DETAIL_TYPE  VARCHAR2(64);

V_RESULT_COUNT NUMBER(12);

V_LEN          NUMBER;

V_LAST_POS     NUMBER;

V_POS          NUMBER;

V_NUM          NUMBER;

V_SUB_SIGN     VARCHAR2(1) := ',';

V_EQUAL_SIGN   VARCHAR2(1) := '=';

V_EQUAL_POS    NUMBER;

V_DETAIL       VARCHAR2(128);

BEGIN

V_LEN      := LENGTH(V_SUB_SIGN);

V_LAST_POS := 1 - V_LEN;

LOOP

V_POS := INSTR(P_DETAIL_RESULT_COUNT, V_SUB_SIGN, V_LAST_POS + V_LEN);

IF V_POS > 0 THEN

--FOUND

V_NUM := V_POS - (V_LAST_POS + V_LEN);

ELSE

--NOT FOUND

V_NUM := LENGTH(P_DETAIL_RESULT_COUNT) + 1 - (V_LAST_POS + V_LEN);

END IF;

V_DETAIL := SUBSTR(P_DETAIL_RESULT_COUNT, V_LAST_POS + V_LEN, V_NUM);

V_EQUAL_POS:=INSTR(V_DETAIL,V_EQUAL_SIGN);

V_DETAIL_TYPE := SUBSTR(V_DETAIL,1,V_EQUAL_POS-1);

V_RESULT_COUNT := SUBSTR(V_DETAIL,V_EQUAL_POS+1);

EXIT WHEN V_POS = 0;

V_LAST_POS := V_POS;

END LOOP;

COMMIT;

--发生异常直接捕获

EXCEPTION

WHEN OTHERS THEN

ROLLBACK;

RAISE;

END;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值