2010. 4. 6. 23:51
반응형
우선 Table 타입을 선언합니다..

create or replace type split_tbl as table of varchar2(32767);
/

함수를 선언합니다.

create or replace function split
(
  p_list varchar2,
  p_del varchar2
) return split_tbl pipelined
is
  l_idx    pls_integer;
  l_list    varchar2(32767) := p_list;
  l_value    varchar2(32767);
begin
  loop
       l_idx := instr(l_list,p_del);
       if l_idx > 0 then
           pipe row(substr(l_list,1,l_idx-1));
           l_list := substr(l_list,l_idx+length(p_del));

       else
           pipe row(l_list);
           exit;
       end if;
  end loop;
  return;
end split;
/

사용법은

select * from table(split('1 2 3 4 5 6 7 8 9 10', ' '));

입니다.
반응형

'Db > Oracle' 카테고리의 다른 글

Oracle Package Procedure Sample  (2) 2010.04.06
Oracle 암/복호화 Package Function Sample(dbms_obfuscation_toolkit)  (3) 2010.04.06
Oracle Job sample  (3) 2010.04.06
Oracle function sample  (4) 2010.04.06
Oracle 세로 데이터를 가로로 표현  (1) 2010.04.06
Posted by seongsland