眾所周知,java中為String類提供了split()字符串分割的方法,所以很容易將字符串以指定的符號分割為一個字符串數組。但是在pl/sql中並沒有提供像java中的split()方法,所以要想在pl/sql中實現字符串的分割還需要自己動手。由於在項目中需要用到此類方法,所以自己研究了一下,方便以後參考。這裡以逗號作為分隔符為例,代碼如下:
1 declare
2 v_str varchar2(200) := 'abd,324,u78,23f,sd09,2345,dsaf,9079';
3 type str_table_type is table of varchar2(50);
4 strArr str_table_type := str_table_type('');
5 v_index integer := 1;
6 begin
7 while (length(v_str)-length(replace(v_str,',',''))) > 0 loop
8 strArr(v_index) := substr(v_str,1,instr(v_str,',',1,1)-1);
9 v_str := substr(v_str,instr(v_str,',',1,1)+1);
10 strArr.extend;
11 v_index := v_index + 1;
12 end loop;
13 strArr(v_index) := v_str;
14 for i in strArr.first..strArr.last loop
15 dbms_output.put_line(strArr(i));
16 end loop;
17 end;