[英]What is the best way to retrieve data from an oracle table using odp.net and pl/sql stored procedures?
我需要使用pl / sql存儲過程和odp.net從oracle表中檢索數據。 這樣做的標准方法是什么?
PL / SQL能夠使用基本為指針的Ref Cursors返回數據集。 這是一個簡單的函數,可根據部門返回員工子集:
SQL> create or replace function get_emps_by_dept (dno number)
2 return sys_refcursor
3 is
4 rc sys_refcursor;
5 begin
6 open rc for select * from emp where deptno = dno;
7 return rc;
8 end;
9 /
Function created.
SQL>
這是SQL * Plus中in的工作方式:
SQL> var rc refcursor
SQL> exec :rc := get_emps_by_dept(50)
PL/SQL procedure successfully completed.
SQL> print rc
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
8085 TRICHLER PLUMBER 8061 08-APR-10 3500 50
8060 VERREYNNE PLUMBER 8061 08-APR-08 4000 50
8061 FEUERSTEIN PLUMBER 7839 27-FEB-10 4500 50
8100 PODER PLUMBER 8061 3750 50
SQL>
關於.Net,在Oracle.DataAccess.Types中有一個OracleRefCursor
類。 需要一定數量的管道,但是出色的Mark A Williams在該主題上寫了一篇不錯的文章,您可以在OTN網站上找到該文章 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.