Или используя неявные результаты операторов - если вы используете Oracle 12c или более позднюю версию базы данных. Эта функция была добавлена для облегчения переноса кода из SQL Server.
CREATE OR REPLACE PROCEDURE fx (par_deptno IN NUMBER)
AS
l_cursor_1 SYS_REFCURSOR;
BEGIN
OPEN l_cursor_1 FOR
SELECT department_id, first_name, last_name, job_id, salary
FROM employees
WHERE department_id = par_deptno;
DBMS_SQL.RETURN_RESULT(l_cursor_1);
END;
/
А затем выполните программу
DECLARE
PAR_DEPTNO NUMBER;
BEGIN
PAR_DEPTNO := 100;
FX(
PAR_DEPTNO => PAR_DEPTNO
);
END;
Выход автоматически возвращается из базы данных:
Примеры / документы по Oracle-Base