myGroupはVARRAYですか?文字列の場合は、次のようにしてみてください。
select 1
from dual
where 'abc,NONE,def' like '%,NONE,%'
作業している制約に従うのは難しいです...可能であれば、SQL内ですべてを実行すると、より高速になります。
更新:
したがって、すでにplsqlユニットにいて、plsqlユニットに留まりたい場合、上記のロジックは次のようになります。
declare
gp varchar2(200) := 'abc,def,NONE,higlmn,op';
begin
if ','||gp||',' like '%,NONE,%' then
dbms_output.put_line('y');
else
dbms_output.put_line('n');
end if;
end;
これ自体がループしている場合は、次のようにリストを1回作成します。
declare
gp varchar2(200) := 'abc,def,NONE,higlmn,op';
gp2 varchar2(200) := ',' || gp || ',';
begin
if g2 like '%,NONE,%' then
dbms_output.put_line('y');
else
dbms_output.put_line('n');
end if;
end;
また、おそらく次のようなものよりも速いinstrを試してください:
declare
gp varchar2(200) := ',abc,def,NONE,hig,';
begin
if instr(gp, ',NONE,') > 0 then
dbms_output.put_line('y');
else
dbms_output.put_line('n');
end if;
end;
これが言及された他の解決策よりも速いかどうかはわかりません(それは良いチャンスです)、それは他の試みです。