Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да върна ResultSet от съхранена процедура в Oracle?

В този урок давам пример за връщане на набор от резултати от съхранена процедура в Oracle с помощта на sys_refcursor.

Следвайте тези стъпки, за да върнете набор от резултати от съхранена процедура в Oracle.

1. Създайте съхранена процедура в Oracle

Следната съхранена процедура (p_dept) ще върне имената на отдели в sys_refcursor (p_result) от таблицата на отделите, където номерът на отдела е по-малък или равен на стойността на параметъра.

CREATE OR REPLACE PROCEDURE p_dept (p_deptno IN dept.deptno%TYPE,
p_result OUT SYS_REFCURSOR)
IS
BEGIN
OPEN p_result FOR
SELECT dname
FROM dept
WHERE deptno <= p_deptno;
END;
/

2. Вземете върнатия набор от резултати и процес

Следващият PL/SQL блок ще получи набора от резултати от съхранената процедура (p_dept) и ще отпечата имената на отделите.

SET SERVEROUTPUT ON;
DECLARE
v_result SYS_REFCURSOR;
v_dname VARCHAR2 (100);
BEGIN

/* call the procedure by passing department numbner and sys_refcursor for resultset */
p_dept (30, v_result);

LOOP
FETCH v_result INTO v_dname;

EXIT WHEN v_result%NOTFOUND;
DBMS_OUTPUT.put_line (v_dname);
END LOOP;
END;
/

Изход:

ACCOUNTING
RESEARCH
SALES
PL/SQL procedure successfully completed.

Вижте също:

  • Създайте PDF файл с помощта на PL/SQL
  • Вземете текущо местно време на която и да е държава в PL/SQL
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съхранената процедура на Spring - резултатите, които се връщат от процедурата, винаги са празни

  2. Създаване на централен изглед в SQL от SQL таблица

  3. Как да покажа работещи процеси в Oracle DB?

  4. ORA-04091:таблицата [blah] мутира, тригерът/функцията може да не я види

  5. Инсталиране на Oracle 11g Release 2 Enterprise Edition на Windows 7 32-Bit