Oracle PL/SQL 저장 프로시저를 사용하여 여러 결과 세트 반환
질문:
저장 프로시저를 어떻게 생성할 수 있나요? 전달된 인수를 기반으로 다양한 데이터 세트를 검색한 후 일반에서 호출합니다. SQL?
답변:
Oracle PL/SQL 저장 프로시저에서 여러 결과 세트를 반환하려면 다음 접근 방식을 사용할 수 있습니다.
객체 및 테이블 유형 생성:
먼저, 객체와 테이블 유형을 정의하여 결과 세트의 데이터 구조. 이 예에서는 empno(숫자)와 ename(varchar2)이라는 두 가지 속성을 가진 emp_obj 객체 유형을 생성합니다. 그런 다음 emp_obj 객체의 컬렉션으로 emp_tab 테이블 유형을 생성합니다.
저장 프로시저 구축:
함수(all_emps in 이 경우) emp_tab 컬렉션을 반환합니다. 함수 내부:
SQL에서 저장 프로시저를 호출합니다.
호출하려면 SQL의 all_emps 함수에서는 테이블 연산자를 사용합니다. 이를 통해 반환된 컬렉션을 일반 테이블로 쿼리할 수 있습니다.
예:
SQL> create type emp_obj is object (empno number, ename varchar2(10)); SQL> create type emp_tab is table of emp_obj; SQL> create or replace function all_emps return emp_tab is l_emp_tab emp_tab := emp_tab(); n integer := 0; begin for r in (select empno, ename from emp) loop l_emp_tab.extend; n := n + 1; l_emp_tab(n) := emp_obj(r.empno, r.ename); end loop; return l_emp_tab; end; SQL> select * from table (all_emps);
결과:
EMPNO ENAME ---------- ---------- 7369 SMITH 7499 ALLEN 7521 WARD 7566 JONES 7654 MARTIN 7698 BLAKE 7782 CLARK 7788 SCOTT 7839 KING 7844 TURNER 7902 FORD 7934 MILLER
위 내용은 Oracle PL/SQL 저장 프로시저에서 여러 결과 세트를 반환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!