Как создать хранимую процедуру PL / SQL с входным параметром для возврата набора данных - PullRequest
0 голосов
/ 20 января 2019

Я новичок в PL / SQL и пытаюсь создать хранимую процедуру с некоторыми входными параметрами, которые мы будем использовать для генерации наших отчетов.

Цель состоит в том, чтобы иметь возможность генерировать 100 с или строки данныхна основе входного параметра, который будет вводить пользователь.

Я могу сделать это в SQL Server, но я не уверен, как это сделать в Oracle.

Например:

Create Procedure usp_employees  
     (@Deptid int not null, 
      @MaritalStatus varchar(10) null)
As
Begin
    Select Firstname, LastName, HireDate, DepartmentName, Marital_Status
    From EmployeeTable
    Where DeparatmentID = @Deptid
      and Marital_Status = @MaritalStatus
End;

И затем я выполняю это так:

Execute usp_employees 1,'F';

Может кто-нибудь подсказать мне, как воссоздать и выполнить это с использованием PL / SQL?

Спасибо.

1 Ответ

0 голосов
/ 20 января 2019

Вы можете сделать это:

CREATE OR REPLACE PROCEDURE usp_employees 
  (p_dept_id           IN int,
   p_MaritalStatus     IN VARCHAR2(10), 
   p_cursor            OUT SYS_REFCURSOR)
IS
BEGIN
   Open p_cursor for
    select Firstname, LastName, HireDate,    
           DepartmentName, Marital_Status
    from EmployeeTable
    where DeparatmentID=p_dept_id
    and Marital_Status=p_maritalstatus;

EXCEPTION
WHEN no_data_found THEN 
NULL;
 END;
/

Для запуска через GUI щелкните правой кнопкой мыши хранимую процедуру, затем нажмите Test.Укажите входные параметры и нажмите «Выполнить».Вы можете либо войти в код, либо закончить.По завершении выберите «...» рядом с курсором ссылки для просмотра набора результатов.

Через запрос

SQL> var rc refcursor
SQL> execute myproc(10, “Single”, :test)
SQL> print rc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...