如何在PL/SQL中解析逗号分隔的字符串?

TER*_*ytE 16 oracle plsql stored-procedures plsqldeveloper

我在PL/SQL脚本中有一个逗号分隔的字符串(例如data:='a,b,c,d,e'),我需要在脚本中解析.

我想遍历字符串并处理每个项目.就像一个'foreach'循环.

这可能在PL/SQL中吗?有人能指点我一些代码吗?

Ton*_*ews 14

如果您使用的是Oracle 10G或11G,那么您应该具有内置的Apex功能apex_util.string_to_table:

SQL> declare
  2    v_array apex_application_global.vc_arr2;
  3    v_string varchar2(2000);
  4  begin
  5  
  6    -- Convert delimited string to array
  7    v_array := apex_util.string_to_table('alpha,beta,gamma,delta', ',');
  8    for i in 1..v_array.count
  9    loop
 10      dbms_output.put_line(v_array(i));
 11    end loop;
 12  
 13    -- Convert array to delimited string
 14    v_string := apex_util.table_to_string(v_array,'|');
 15    dbms_output.put_line(v_string);
 16  end;
 17  /
alpha
beta
gamma
delta
alpha|beta|gamma|delta

PL/SQL procedure successfully completed.
Run Code Online (Sandbox Code Playgroud)