读书人

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

发布时间: 2012-07-02 17:46:22 作者: rapoo

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

     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;

读书人网 >其他数据库

热点推荐