Czy myGroup to varray? Jeśli jest to ciąg znaków, wypróbuj coś takiego:
select 1
from dual
where 'abc,NONE,def' like '%,NONE,%'
Trudno jest dostosować się do ograniczeń, z którymi pracujesz... Jeśli to w ogóle możliwe, zrób wszystko w sql, a będzie szybciej.
Aktualizacja:
Więc jeśli jesteś już w jednostce plsql i chcesz pozostać w jednostce plsql, powyższa logika wyglądałaby mniej więcej tak:
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;
jeśli to samo jest w pętli, utwórz listę raz jako:
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;
Spróbuj także instr, który jest prawdopodobnie szybszy niż:
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;
Nie mam pojęcia, czy jest to szybsze niż inne wymienione rozwiązania (ma duże szanse), to jest coś innego do wypróbowania.