试试~~~
Declare
tmp_char Varchar2(500) := '01,02,03,';
tmp_id Varchar(500) :='';
tmp_name Varchar(500) :='';
tmp_str Varchar(50);
len_end Number(10);
len_begin Number(10) := 0;
Begin
--dbms_output.put_line('tmp_char:' || tmp_char);
While instr(tmp_char,',')>0
Loop
len_end := instr(tmp_char,',') ;
tmp_id := substr(tmp_char,0,len_end-1);
Select name Into tmp_str From student Where Id = ''|| tmp_id;
len_begin := len_end+1;
tmp_char := substr(tmp_char,len_begin);
tmp_name := tmp_name ||','|| tmp_str;
End Loop;
tmp_name := substr(tmp_name,2);
dbms_output.put_line(tmp_name);
End;
|