存储过程字符截取的两种方式



FOR G_I IN 1..G_ITEM_COUNT LOOP
G_ITEM_ARR :=INSTR(G_ITEM_STR,'@',1,1);
G_ITEM_CODE :=SUBSTR(G_ITEM_STR,1,G_ITEM_ARR-1);

G_VALUE_ARR :=INSTR(G_VALUE_STR,'@',1,1);
G_ITEM_VALUE :=SUBSTR(G_VALUE_STR,1,G_VALUE_ARR-1);

G_AUDIT_ARR :=INSTR(G_AUDIT_STR,'@',1,1);
G_AUDIT_VALUE:=SUBSTR(G_AUDIT_STR,1,G_AUDIT_ARR-1);

UPDATE PV_FORM_ITEM
SET ITEM_VALUE=G_ITEM_VALUE,AUDIT_VALUE=G_AUDIT_VALUE,LAST_MODIFY_TIME=SYSDATE
WHERE FORM_ID=G_FORM_ID AND ITEM_CODE=G_ITEM_CODE;

--1 删除相同的 例:'aaa@aaa@bbb@ccc'-->'bbb@ccc'
G_REP_ITEM_STR := G_ITEM_CODE||'@';
G_ITEM_STR := REPLACE(G_ITEM_STR,G_REP_ITEM_STR,'');
G_REP_VALUE_STR:= G_ITEM_VALUE||'@';
G_VALUE_STR := REPLACE(G_VALUE_STR,G_REP_VALUE_STR,'');
G_REP_AUDIT_STR:= G_AUDIT_VALUE||'@';
G_AUDIT_STR := REPLACE(G_AUDIT_STR,G_REP_AUDIT_STR,'');
--2 去掉第一个值 例:'aaa@aaa@bbb@ccc'-->'aaa@aaa@bbb@'
G_ITEM_STR := SUBSTR(G_ITEM_STR,1,instr(G_ITEM_STR,'@',-1,2));
G_VALUE_STR := SUBSTR(G_VALUE_STR,1,instr(G_VALUE_STR,'@',-1,2));
G_AUDIT_STR := SUBSTR(G_AUDIT_STR,1,instr(G_AUDIT_STR,'@',-1,2));
--3 去掉第一个值 例:'aaa@aaa@bbb@ccc'-->'aaa@bbb@ccc@'
G_ITEM_STR := substr(G_ITEM_STR,instr(G_ITEM_STR,'@',1,1)+1);
G_VALUE_STR := substr(G_VALUE_STR,instr(G_VALUE_STR,'@',1,1)+1);
G_AUDIT_STR := substr(G_AUDIT_STR,instr(G_AUDIT_STR,'@',1,1)+1);
END LOOP;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值