17,086
社区成员
发帖
与我相关
我的任务
分享
create or replace procedure p_test(str varchar2) is
begin
for i in (with t1 as
(select regexp_substr(str, '[^,]+', 1, level) a
from dual
connect by level <= regexp_count(str, ',') + 1)
select t.* from t_test t, t1 where t.a = t1.a) loop
dbms_output.put_line(i.a);
end loop;
end;
drop table t_test;
create table t_test(a varchar2(10));
insert into t_test values('a1');
insert into t_test values('a2');
insert into t_test values('a3');
insert into t_test values('a4');
insert into t_test values('1');
insert into t_test values('2');
insert into t_test values('3');
commit;
/
create or replace procedure p_test(str varchar2) is
begin
for i in (with t1 as
(select regexp_substr(str, '[^,]+', 1, level) a
from dual
connect by level <= regexp_count(str, ',') + 1)
select t.* from t_test t, t1 where t.a = trim(t1.a)) loop
dbms_output.put_line(i.a);
end loop;
end;
传入a1,a2,1 可得到结果。