1 DECLARE
2 depcode VARCHAR2(100);
3 A VARCHAR2(100);
4 depcode_d VARCHAR2(100);
5 BEGIN
6 depcode:='abc,def,ghi,jkl';
7 a:= instr(depcode,',',1,1);
8 while a>0 loop
9 depcode_d:=substr(depcode,1,a-1);
10 depcode:=substr(depcode,a+1);
11 dbms_output.put_line(depcode_d);
12 a:= instr(depcode,',',1,1);
13 end loop;
14 dbms_output.put_line(depcode);
15* END;
SQL> /
abc
def
ghi
jkl
2 depcode VARCHAR2(100);
3 A VARCHAR2(100);
4 depcode_d VARCHAR2(100);
5 BEGIN
6 depcode:='abc,def,ghi,jkl';
7 a:= instr(depcode,',',1,1);
8 while a>0 loop
9 depcode_d:=substr(depcode,1,a-1);
10 depcode:=substr(depcode,a+1);
11 dbms_output.put_line(depcode_d);
12 a:= instr(depcode,',',1,1);
13 end loop;
14 dbms_output.put_line(depcode);
15* END;
SQL> /
abc
def
ghi
jkl
depcode := depcode ||',';
end if;a:= instr(depcode,',',1,1);
while a>0 loop
depcode_d:=substr(depcode,1,a-1);
depcode:=substr(depcode,a+1);
dbms_output.put_line(depcode_d);
end loop;
b := 1;
while a>0 loop
a:= instr(depcode,',',b,1);
if a > 0 then
depcode_d:=substr(depcode,b,a-b);
else
depcode_d:=substr(depcode,b);
end if;
dbms_output.put_line(depcode_d);
b: = a+1;
end loop;
depcode := depcode ||',';
end if;a:= instr(depcode,',',1,1);
while a>0 loop
depcode_d:=substr(depcode,1,a-1);
depcode:=substr(depcode,a+1);
dbms_output.put_line(depcode_d);
a := instr(depcode,',',1,1); --居然没有这一行
end loop;