您的位置:首页 > 数据库 > Oracle

Oracle 如何将一个字段拆分成表

2017-08-30 11:36 295 查看
 

先将'a,b,d'  拆分,在转化为表

1  创建类型

CREATE OR REPLACE TYPE "TYPE_SPLIT"            IS TABLE OF VARCHAR2 (4000)

2创建拆分函数

CREATE OR REPLACE FUNCTION "SPLIT"

(

   p_list varchar2,

   p_sep varchar2 := ','

)  return type_split pipelined

 is

   l_idx  pls_integer;

   v_list  varchar2(4000) := p_list;

begin

   loop

      l_idx := instr(v_list,p_sep);

      if l_idx > 0 then

          pipe row(substr(v_list,1,l_idx-1));

          v_list := substr(v_list,l_idx+length(p_sep));

      else

          pipe row(v_list);

          exit;

      end if;

   end loop;

   return;

end split;

 

3  拆分转化为表

 SELECT * FROM table(split('a,b,d',',')) aaa
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  拆分 Oracle 查分成表