需求:函式傳入乙個字串引數 例如 123-456
將這個字串123-456拆成兩個值 123 456,在通過兩個值分別查出資料(例如 張三 李四),拼接成 張三-李四
--宣告變數--
drop
type str_split;
create
orreplace type str_split is
table
ofvarchar2 (4000);/
drop
type type_split;
create
orreplace type type_split as
table
ofvarchar2(500
);/
--分割字串函式--
create
orreplace type str_split is
table
ofvarchar2 (4000
);create
orreplace
function splitstr(p_string in
varchar2, p_delimiter in
varchar2
)
return
str_split
pipelined
asv_length
number :=
length(p_string);
v_start
number :=1;
v_index
number
;begin
while(v_start <=
v_length)
loop
v_index :
=instr(p_string, p_delimiter, v_start);
if v_index =
0then
pipe
row(substr(p_string, v_start));
v_start :
= v_length +1;
else
pipe row(substr(p_string, v_start, v_index -
v_start));
v_start :
= v_index +1;
endif
;
endloop;
return
;end
splitstr;
--使用方法--
select
*from
table(splitstr('
16021-16022
','-
')); --
執行出的結果
column_value
16021
16022
這個是我自己寫的函式
create
orreplace
function fn_getdead (v_deadid varchar2
)return
varchar2
isv_deadstring
varchar2(100
);v_deadstring_all
varchar2(4000
);cursor c_deadidspilt --
設定乙個分割字串游標--
isselect
*from
table(splitstr(''
||v_deadid||
'','-'
));c_row c_deadidspilt
%rowtype;
begin
if instr(v_deadid,'
-') >
0then
---判讀變數中是否含有"-"字元,如果有,則迴圈遍歷這個字元,取出亡人姓名
open c_deadidspilt; --
開啟游標--
loop
fetch c_deadidspilt into
c_row;
exit
when c_deadidspilt%
notfound;
select wrxm into v_deadstring from wrxxb where id=
c_row.column_value;
v_deadstring_all:
=v_deadstring_all||'-
'||v_deadstring;
endloop;
close
c_deadidspilt;
return
ltrim(v_deadstring_all,'-'
); else
select wrxm into v_deadstring from wrxxb where id=
''||v_deadid||'';
return
v_deadstring;
endif;
--異常處理--
exception
when others then dbms_output.put_line('
error');
return-1
;end
fn_getdead;/--
呼叫--
select fn_getdead('
16021-16022
') from
dual; --
我執行出的結果--
fn_getdead('
16021-16022')
馬瑞祥-趙桂芝
C 根據空格分割字串Split函式可以是多個空格
stringstrarray yourstring.split newchar publicstaticvoidmain public static void main console.readline string strs csdn c 論壇 版竹 strs strs.trim strs sys...
C Split函式根據特定分隔符分割字串的操作
在c 程式開發過程中,很多時候可能需要將字串根據特定的分割字元分割成字元或者list集合,例如根據逗號將字串分割為陣列,或者根據豎線將字串分割成陣列,c 中提供了split 函式來快速將字串分割成陣列形式,如果需要轉換為list集合,可在分割完成後使用陣列的tolist 方法即可轉換為list集合資...
葉子函式分享九 根據字元分割字串的三種寫法
go 建立函式 第一版 create function dbo m split c varchar 2000 split varchar 2 returns t table col varchar 200 as begin while charindex split,c 0 begin insert...