PL / SQL процедура для отображения сведений о сотрудниках из таблицы сотрудников, чье обозначение «менеджер» - PullRequest
0 голосов
/ 31 марта 2020

У меня есть отношение, называемое сотрудником, например:

EMPNO       EMPNAME     DESIGNATION     DATEOFJOIN      SALARY      DEPNO
-----       -------     -----------     ---------       ------      ----
101         Sharon       Manager        01-JAN-00       10000         1
102         Gayathri     Manager        01-JAN-00       10000         1
111         Raj          Salesman       05-JAN-00       5000          1

Я хочу создать процедуру для отображения сведений обо всех сотрудниках из таблицы сотрудников с обозначением «менеджер». Можете ли вы помочь мне с этим?

Я хочу, чтобы мой вывод был таким:

EMPNO       EMPNAME       DATEOFJOIN    SALARY      DEPNO
-----       -------       ---------     ------      ----
101         Sharon        01-JAN-00     10000         1
102         Gayathri      01-JAN-00     10000         1

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Ваше требование очень простое, но ожидаемый результат немного неясен.

В основном, этот тип требования выполняется с помощью refcursor.

Я показываю вам пример следующим образом :

SQL> CREATE OR REPLACE PROCEDURE SHOW_ACCT_DETAILS (
  2      P_OUT_CUR OUT   SYS_REFCURSOR
  3  ) AS
  4  BEGIN
  5      OPEN P_OUT_CUR FOR SELECT ACC_NR, SUM_, CUST_ID
  6                           FROM ACCOUNT
  7                          WHERE SUM_ > 1000;
  8  END SHOW_ACCT_DETAILS;
  9  /

Procedure created.

Теперь вызываем процедуру и печатаем желаемый результат.

SQL> var cur refcursor;

SQL> exec SHOW_ACCT_DETAILS(:cur);

PL/SQL procedure successfully completed.

SQL> print :cur;

    ACC_NR       SUM_    CUST_ID
---------- ---------- ----------
       500       3400        100
       600       5000        101
       700       5070        102

SQL>
0 голосов
/ 31 марта 2020

Вы ищете простой запрос?

SELECT EMPNO, EMPNAME, DATEOFJOIN, SALARY, DEPNO
FROM employee
WHERE DESIGNATION = 'Manager';

Если вы хотите поместить это в хранимую процедуру, вы должны объяснить, как вы хотите вызвать процедуру. В противном случае VIEW было бы хорошо для инкапсуляции лог c.

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