Er myGroup en varray? Hvis det er en streng, prøv noget som:
select 1
from dual
where 'abc,NONE,def' like '%,NONE,%'
Det er svært at følge de begrænsninger, du arbejder under... Hvis det overhovedet er muligt, så gør alt inde i sql, og det vil være hurtigere.
Opdatering:
Så hvis du allerede er i en plsql-enhed og ønskede at blive i en plsql-enhed, så ville logikken ovenfor se sådan ud:
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;
hvis dette i sig selv er i en løkke, så lav listen én gang som:
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;
Prøv også instr, som sandsynligvis er hurtigere end som:
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;
Jeg aner ikke, om det er hurtigere end de andre nævnte løsninger (det har en god chance), det er noget andet at prøve.