Ваше требование очень простое, но ожидаемый результат немного неясен.
В основном, этот тип требования выполняется с помощью 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>