Как выполнить хранимую процедуру в Oracle PLSQL и увидеть результаты, когда выходной параметр REF CURSOR - PullRequest
0 голосов
/ 20 июня 2019

У меня есть пакет с хранимой процедурой в Oracle PLSQL, который имеет один входной и выходной параметр в качестве курсора ссылки. Курсор ref в процедуре содержит два оператора SELECT с UNION. Он содержит две таблицы: таблицы сотрудников и актеров. Я пытаюсь проверить эту процедуру, запустив анонимный блок, но курсор ref не возвращает никаких значений. Пожалуйста помоги. Нужно это скоро.

Технические характеристики упаковки:

create or replace PACKAGE pkg_TEST AS  

Type cur_dtls is REF CURSOR; 

PROCEDURE EMPLOYEE
(
p_empID           IN       NUMBER,
p_ResultSet        OUT  cur_dts 
);

END pkg_TEST;

Корпус:

create or replace PACKAGE body pkg_TEST AS
AS

create or replace PROCEDURE EMPLOYEE
(
p_empID           IN       NUMBER,
p_ResultSet       OUT  cur_dts 
)

BEGIN
OPEN p_ResultSet FOR

SELECT Assoc.*, (CASE WHEN emp.dept is NULL then 'NO' else 'YES') status
 from
  (SELECT emp.name, 
      emp.dept,
      emp.salary
      emp.address,
      emp.phone
  FROM employee_table
  WHERE emp.id = p_empID) Assoc

UNION

SELECT Actor.*, (CASE WHEN act.dept is NULL then 'NO' else 'YES') status
 from
  (SELECT act.name, 
          act.dept,
          emp.salary
          emp.address,
          emp.phone
  FROM employee_table emp, actor_table act
  WHERE act.id = emp.id 
  AND   act.phone=emp.phone 
  AND   act_id = p_empID) Actor;

END EMPLOYEE; 

END pkg_TEST;

Я ожидаю вывода из этого пакета / процедуры, когда передам emp_ID. Пожалуйста, дайте мне знать, как создать анонимный блок для этого? Я создал один, но он не работает.

Выход:

emp.name || emp.dept || emp.salary || emp.address || emp.phone || Состояние

Марк || IT || 23434 || техас || 334743443 || ДА
Клэр || || 43455 || Кали || 545454554 || NO

Извините. Я не смог отобразить результат вывода в отформатированном виде.

...