Heim  >  Artikel  >  Datenbank  >  oracle 的split函数

oracle 的split函数

WBOY
WBOYOriginal
2016-06-07 15:51:061072Durchsuche

PL/SQL 中没有split函数,需要自己写。 代码: createorreplacetypetype_splitastableofvarchar2(50);--创建一个 type ,如果为了使split函数具有通用性,请将其size设大些。 --创建function createorreplacefunctionsplit ( p_listvarchar2, p_sepvarchar2:

PL/SQL 中没有split函数,需要自己写。

  代码:

 

oracle 的split函数create or replace type type_split as table of varchar2(50);  --创建一个  type  ,如果为了使split函数具有通用性,请将其size 设大些。

oracle 的split函数

oracle 的split函数

oracle 的split函数--创建function

oracle 的split函数create or replace function split

oracle 的split函数(

oracle 的split函数   p_list varchar2,

oracle 的split函数   p_sep varchar2 := ','

oracle 的split函数)  return type_split pipelined

oracle 的split函数 is

oracle 的split函数   l_idx  pls_integer;

oracle 的split函数   v_list  varchar2(50) := p_list;

oracle 的split函数begin

oracle 的split函数   loop

oracle 的split函数      l_idx := instr(v_list,p_sep);

oracle 的split函数      if l_idx > 0 then

oracle 的split函数          pipe row(substr(v_list,1,l_idx-1));

oracle 的split函数          v_list := substr(v_list,l_idx+length(p_sep));

oracle 的split函数      else

oracle 的split函数          pipe row(v_list);

oracle 的split函数          exit;

oracle 的split函数      end if;

oracle 的split函数   end loop;

oracle 的split函数   return;

oracle 的split函数end split;

测试:

 

oracle 的split函数

oracle 的split函数SQL> select * from table(split('northsnow,塞北的雪',','));

oracle 的split函数

oracle 的split函数COLUMN_VALUE

oracle 的split函数--------------------------------------------------

oracle 的split函数northsnow

oracle 的split函数塞北的雪

oracle 的split函数

oracle 的split函数SQL> 


补充: 
-----PIPELINED关键字是什么意思? 
---- pipe row是什么意思?

pipelined声名此function是pipe的,如果这么声名了,就必须使用pipe row的方式把数据返回,常规函数最后的"return 变量",就变成了"return". 

pipelined的function主要是为了提高效率,不用等所有的数据都处理完成了才返回客户端,它是边处理边返回.适用于大数据量的交互. 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn