drop table cs_thz_1 ;
create table cs_thz_1( nid number(10) ,sname varchar2(1000) );
truncate table cs_thz_1;
insert into cs_thz_1(nid,sname)
select 1,'苹果,香蕉' from dual union all select 2,'茄子,豆角,西蓝花,芥蓝' from dual union all select 3,'笔' from dual ;
commit;
--sname确保两边都有逗号才能分隔
select nid,sname,cnt,level
,substr(sname, instr(sname,',',1,level) + 1 , instr(sname, ',', 1, level + 1) - instr(sname, ',', 1, level) - 1) s2
from (
select nid,','||sname||',' as sname,length(','||sname)-length(replace(','||sname,',')) cnt from cs_thz_1--sname确保两边都有逗号
) connect by prior nid = nid and level <= cnt and prior dbms_random.value is not null ;
select instr(s1,',',1,5) from (--没有第5个逗号则返回0
select '1,2,3,4,5' s1 from dual
) ;