Я искал похожее решение, где у меня были многобайтовые символы (дефис, пробел, подчеркивание) в списках через запятую. Так что dbms_utility.comma_to_table
у меня не сработало.
declare
curr_val varchar2 (255 byte);
input_str varchar2 (255 byte);
remaining_str varchar2 (255 byte);
begin
remaining_str := input_str || ',dummy'; -- this value won't output
while (regexp_like (remaining_str, '.+,.+'))
loop
curr_val := substr (remaining_str, 1, instr (remaining_str, ',') - 1);
remaining_str = substr (remaining_str, instr (remaining_str, ',') + 1);
dbms_output.put_line (curr_val);
end loop;
end;
Это не экспертный ответ, поэтому я надеюсь, что кто-то улучшит этот ответ.