O myGroup é um varray? Se for uma string tente algo como:
select 1
from dual
where 'abc,NONE,def' like '%,NONE,%'
É difícil seguir as restrições sob as quais você está trabalhando... Se possível, faça tudo dentro do sql e será mais rápido.
Atualização:
Então, se você já estiver em uma unidade plsql e quiser ficar em uma unidade plsql, a lógica acima seria algo assim:
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;
se isso em si estiver em um loop, faça a lista uma vez como:
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;
Tente também instr que provavelmente é mais rápido do que como:
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;
Não tenho ideia se isso é mais rápido que as outras soluções mencionadas (é uma boa chance), é outra coisa para tentar.