Поскольку у меня нет вашей таблицы, я буду использовать Скотта с заданиями вместо цветов.
Пример данных:
SQL> select ename, job from emp order by job, ename;
ENAME JOB
---------- ---------
FORD ANALYST
SCOTT ANALYST
ADAMS CLERK
JAMES CLERK
MILLER CLERK
SMITH CLERK
BLAKE MANAGER
CLARK MANAGER
JONES MANAGER
KING PRESIDENT
ALLEN SALESMAN
MARTIN SALESMAN
TURNER SALESMAN
WARD SALESMAN
14 rows selected.
Процедура вернет сотрудников, которые имеют определенную работу:
SQL> create or replace procedure favJob (par_job in varchar2, par_rc out sys_refcursor)
2 is
3 begin
4 open par_rc for
5 select ename, job
6 from emp
7 where job = par_job
8 order by ename;
9 end;
10 /
Procedure created.
Тестирование:
SQL> var rc refcursor
SQL> exec favJob('MANAGER', :rc);
PL/SQL procedure successfully completed.
SQL> print rc
ENAME JOB
---------- ---------
BLAKE MANAGER
CLARK MANAGER
JONES MANAGER
SQL>