轉:類似SQL中的split函式

cosio發表於2007-08-23
類似SQL中的split函式[@more@]
轉:類似SQL中的split函式create or replace type type_split as table of varchar2(50); --建立一個  type  ,如果為了使split函式具有通用性,請將其size 設大些。
轉:類似SQL中的split函式

轉:類似SQL中的split函式
轉:類似SQL中的split函式
--建立function
轉:類似SQL中的split函式
create or replace function split
轉:類似SQL中的split函式(
轉:類似SQL中的split函式 p_list
varchar2,
轉:類似SQL中的split函式 p_sep
varchar2 := ','
轉:類似SQL中的split函式)
return type_split pipelined
轉:類似SQL中的split函式
is
轉:類似SQL中的split函式 l_idx pls_integer;
轉:類似SQL中的split函式 v_list
varchar2(50) := p_list;
轉:類似SQL中的split函式
begin
轉:類似SQL中的split函式 loop
轉:類似SQL中的split函式 l_idx :
= instr(v_list,p_sep);
轉:類似SQL中的split函式
if l_idx > 0 then
轉:類似SQL中的split函式
pipe row(substr(v_list,1,l_idx-1));
轉:類似SQL中的split函式 v_list :
= substr(v_list,l_idx+length(p_sep));
轉:類似SQL中的split函式
else
轉:類似SQL中的split函式
pipe row(v_list);
轉:類似SQL中的split函式
exit;
轉:類似SQL中的split函式
end if;
轉:類似SQL中的split函式
end loop;
轉:類似SQL中的split函式
return;
轉:類似SQL中的split函式
end split;

測試:

轉:類似SQL中的split函式
轉:類似SQL中的split函式SQL
> select * from table(split('northsnow,塞北的雪',','));
轉:類似SQL中的split函式
轉:類似SQL中的split函式COLUMN_VALUE
轉:類似SQL中的split函式
--------------------------------------------------
轉:類似SQL中的split函式
northsnow
轉:類似SQL中的split函式塞北的雪

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/101162/viewspace-965491/,如需轉載,請註明出處,否則將追究法律責任。

相關文章