1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
DECLARE
TYPE typ_var1 ISTABLEOFVARCHAR2(1)INDEXBYVARCHAR2(1);
wtab typ_var1;
wstr varchar2(50):='A,F,C,H,P,Z,F,6,D,8'||',';
wstr_temp varchar2(1);
wpos_prec pls_integer:=0;
wpos_suiv pls_integer:=1;
BEGIN
--SPLIT de la chaine en tableau indexé avec varchar2'
while instr(wstr,',',wpos_suiv+1)>0loop
wpos_suiv := instr(wstr,',',wpos_suiv+1);
wstr_temp := rtrim(ltrim(substr(wstr,wpos_prec,wpos_suiv-wpos_prec),','),',');
wtab(wstr_temp):= wstr_temp;
wpos_prec := wpos_suiv;
wpos_suiv := instr(wstr,',',wpos_prec);
endloop;
--Lecture du tableau '
wstr_temp := wtab.FIRST;
while wstr_temp isnotnullloop
dbms_output.put_line(wtab(wstr_temp));
wstr_temp := wtab.next(wstr_temp);
endloop;
END;
/
|
Partager