日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

orcal根据分号把一行拆分为多行显示

發布時間:2024/1/18 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 orcal根据分号把一行拆分为多行显示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

近期開發一塊需求遇到之前用分號拼接保留在一個字段的值需要拆分出來分表保存,所以想了下實現方法

數據如下:

實現效果如下:

單條處理sql:

select a.id,a.carcoopercode,substr2(regexp_substr(a.pushmessageinfo, '[^;]+', 1, rownum),0,instr(regexp_substr(a.pushmessageinfo, '[^;]+', 1, rownum),'-') - 1),substr2(regexp_substr(a.pushmessageinfo, '[^;]+', 1, rownum),instr(regexp_substr(a.pushmessageinfo, '[^;]+', 1, rownum),'-') + 1,length(regexp_substr(a.pushmessageinfo, '[^;]+', 1, rownum)))from prpccarcooper_0727 a connect by rownum <= length(a.pushmessageinfo) -length(replace(a.pushmessageinfo, ';', '')) + 1;

批量處理存過:

create or replace package body AHJCARCOOPERPERSON isprocedure CARCOOPERPERSON isv_row_prpccarcooper prpccarcooper%ROWTYPE;TYPE CUR_person IS REF CURSOR;RS_his CUR_person;V_SQL VARCHAR2(1000);person_TYPE prpccarcooperPerson%ROWTYPE;v_id varchar2(20);v_usercode varchar2(20);v_username varchar2(20);cursor cur2 is--查找不為空select *from prpccarcooper a where a.pushmessageinfo is not null ; beginfor v_row_prpccarcooper in cur2 LOOPbeginv_id:=v_row_prpccarcooper.id;delete prpccarcooper_0727 a;insert into prpccarcooper_0727 select * from prpccarcooper a where a.id=v_id;V_SQL:= 'select a.id,a.carcoopercode, regexp_substr(a.pushmessageinfo, ''[^;]+'', 1, rownum),'''' from prpccarcooper_0727 a connect by rownum <= length(a.pushmessageinfo) -length(replace(a.pushmessageinfo, '';'', '''')) + 1';OPEN RS_his FOR V_SQL;LOOPFETCH RS_hisINTO person_TYPE;EXIT WHEN RS_his%NOTFOUND;--截取不為空,則插入if person_TYPE.Pushman is not null thenselect substr2(person_TYPE.Pushman,0,instr(person_TYPE.Pushman,'-')-1),substr2(person_TYPE.Pushman,instr(person_TYPE.Pushman,'-')+1,length(person_TYPE.Pushman))into v_usercode, v_username from dual;EXECUTE IMMEDIATE 'insert into prpccarcooperPerson(id,carcoopercode,pushman,pushmanname) values(:X,:X,:X,:X)'USING person_TYPE.Id,person_TYPE.Carcoopercode, v_usercode,v_username;end if;END LOOP;commit;EXCEPTIONWHEN OTHERS THENROLLBACK;raise;END; end loop; end CARCOOPERPERSON;end AHJCARCOOPERPERSON;

?

總結

以上是生活随笔為你收集整理的orcal根据分号把一行拆分为多行显示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。