写个SQL函数,只要运用下系统的instr(string,string...[],[])配合substr(string,number)来用:
create or replace function f_o_get_jcywgnnamesbyid
(
m_jcywgnids in varchar2
)
return varchar2
is
/*
...
*/
i number;
v_jcywgnids varchar2(4000);
v_temp_id varchar2(20);
v_jcywgnname varchar2(4000);
begin
  v_jcywgnids := m_jcywgnids;--必须要赋给一个变量,否则截取不了直接传进来的变量
  if v_jcywgnids is not null then
      i := instr(v_jcywgnids,';');
      while i>0 Loop
              v_temp_id := substr(v_jcywgnids,1,i-1);
              v_jcywgnname := v_jcywgnname||'  ';
              v_jcywgnids := substr(v_jcywgnids,i+1);
              i := instr(v_jcywgnids,';');
      end Loop;
      v_jcywgnname := v_jcywgnname||v_temp_id;
      return v_jcywgnname;
  else
      return '';
  end if;
end f_o_get_jcywgnnamesbyid;

运行测试:  select  f_o_get_jcywgnnamesbyid('30360001;30360002;30360003;30360004;30360005')  from dual;

posted on 2009-03-18 17:26  Madream.F  阅读(156)  评论(0编辑  收藏  举报