欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

oracle怎么拆分逗號(hào),oracle用逗號(hào)拼接

關(guān)于Oracle中實(shí)現(xiàn)單列拆分成多列的技術(shù)應(yīng)用

1.前言:通過(guò)使用FineBI進(jìn)行“點(diǎn)地圖”方式來(lái)展現(xiàn)數(shù)據(jù)。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供康巴什網(wǎng)站建設(shè)、康巴什做網(wǎng)站、康巴什網(wǎng)站設(shè)計(jì)、康巴什網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、康巴什企業(yè)網(wǎng)站模板建站服務(wù),10多年康巴什做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

2.遇到的問(wèn)題:原始表 經(jīng)緯度 是一個(gè)字段保存,比如 xy列 中某行值為“130.111111,33.999999”。

3.解決的方法:通過(guò) xy列 中’,‘逗號(hào)并使用函數(shù)substr()和函數(shù)instr() 處理后效果圖和SQL示例如下

4.附注:

substr函數(shù)的用法 :

取得字符串中指定起始位置和長(zhǎng)度的字符串 ,默認(rèn)是從起始位置到結(jié)束的子串。

substr( string, start_position, [ length ] )? ? 即:? substr('目標(biāo)字符串',開(kāi)始位置,長(zhǎng)度)

instr函數(shù)的用法 :

格式一:instr( string1, string2 )? ?即:? instr(源字符串, 目標(biāo)字符串),本案例是使用此格式。

格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] )? ?即:instr(源字符串, 目標(biāo)字符串, 起始位置, 匹配序號(hào))

解析:string2 的值要在string1中查找,是從start_position給出的數(shù)值(即:位置)開(kāi)始在string1檢索,檢索第nth_appearance(幾)次出現(xiàn)string2。

instr是一個(gè)非常好用的字符串處理函數(shù),幾乎所有的字符串分隔都用到此函數(shù)。

Oracle中怎樣用存儲(chǔ)過(guò)程將一段字符串以逗號(hào)為界截取,并將得到的子串存到另一張表中

--通過(guò)游標(biāo)遍歷調(diào)用方法拆取存表:

--方法

create or replace function f_test_substr(

prm1 varchar2,??? --地

prm2 varchar2 ,?? --名稱

prm3 varchar2,??? --IP

prm4 varchar2??? --結(jié)果

)

return varchar2

as

v_n int:=0;? --第幾次取

v_l int;? --:截取次數(shù)

v_s varchar2(2000);? --處理拆分字符串

v_s1 varchar2(200);? --本次拆分

v_s2 varchar2(200);? --本次剩余

v_type varchar2(100);? --設(shè)備類型

v_code varchar2(100);? --設(shè)備編號(hào)

v_desc varchar2(100);? --設(shè)備描述

v_errmsg varchar2(200);

begin

v_l:=length(prm4)-length(replace(prm4,';',''));

v_s:=prm4||';';

v_s1:=substr(v_s,1,instr(v_s,';',1,1));

v_s2:=replace(v_s,v_s1,'');

while v_n=v_l loop

v_s2:=replace(v_s2,v_s1,'');

v_s1:=substr(v_s1,1,length(v_s1)-1);

v_type:=substr(v_s1,1,instr(v_s1,',',1,1)-1);

v_code:=substr(v_s1,instr(v_s1,',',1,1)+1,instr(v_s1,',',1,2)-instr(v_s1,',',1,1)-1);

v_desc:=substr(v_s1,instr(v_s1,',',1,2)+1,instr(v_s1||',',',',1,3)-instr(v_s1,',',1,2)-1);

insert into t_test_str(a,b,c,d,e,f) values(prm1,prm2,prm3,substr(v_type,instr(v_type,']',1)+1),v_code,v_desc);

v_n:=v_n+1;

v_s1:=substr(v_s2,1,instr(v_s2,';',1,1));

end loop;

commit;

return '成功';

exception

when others then

v_errmsg:=substr(sqlerrm,1,200);

return v_errmsg ;

end;

--存過(guò)

create or replace procedure p_test_substr1(o_result out varchar2)

as

v_a varchar2(20);

v_b varchar2(20);

v_c varchar2(20);

v_d varchar2(2000);

v_num int;

cursor c_str is

SELECT * from t_test_substr

;

begin

select count(1) into v_num from t_test_substr;

while v_num0 loop

open c_str;

loop

FETCH c_str INTO

v_a,v_b,v_c,v_d;

EXIT WHEN c_str%NOTFOUND;

o_result:=f_test_substr(v_a,v_b,v_c,v_d);

v_num:=v_num-1;

end loop;

CLOSE c_str;

end loop;

end;

效果見(jiàn)圖:

oracle如何拆分以逗號(hào)分隔的字符串為多列

oracle 中可以用connect by把字符串按都好分割:

比如定義字符串:

pv_no_list :='23,34,45,56';

SELECT DISTINCT REGEXP_SUBSTR (pv_no_list,'[^,]+',1,LEVEL) as "token"

FROM DUAL

CONNECT BY REGEXP_SUBSTR (pv_no_list,'[^,]+',1,LEVEL) IS NOT NULL

order by 1

返回結(jié)果:

TOKEN

23

34

45

56

oracle 如何將一個(gè)字段由逗號(hào)分割成多行

select b,

t.ca,

c.lv,instr(t.ca, ',', 1, c.lv) + 1,

substr(t.ca,

instr(t.ca, ',', 1, c.lv) + 1,

instr(t.ca, ',', 1, c.lv + 1) -

(instr(t.ca, ',', 1, c.lv) + 1)) AS c

from (select b,

',' || c || ',' AS ca,

c,

LENGTH(C),

length(c || ','),

REPLACE(c, ','),

length(REPLACE(c, ',')), --刪除逗號(hào)的長(zhǎng)度

nvl(length(REPLACE(c, ',')), 0), --空值長(zhǎng)度為空,因此要將空值替換為0

length(c || ',') - nvl(length(REPLACE(c, ',')), 0) AS cnt --以逗號(hào)分隔的字符串個(gè)數(shù),先在原來(lái)的長(zhǎng)度上加1 計(jì)算去除所有逗號(hào)后字符串長(zhǎng)度,再,拿這個(gè)

FROM TEST_A) t,

(select LEVEL lv from dual CONNECT BY LEVEL = 100) c

where c.lv = t.cnt --逗號(hào)數(shù)量在100以內(nèi)

名稱欄目:oracle怎么拆分逗號(hào),oracle用逗號(hào)拼接
文章網(wǎng)址:http://chinadenli.net/article7/dsiesij.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)網(wǎng)站排名云服務(wù)器響應(yīng)式網(wǎng)站網(wǎng)站設(shè)計(jì)網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)