日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle 如何 更改 ref cursor 结果集,oracle – 如何从anther调用一个存储过程并修改返回的refcursor?...

發布時間:2024/7/23 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 如何 更改 ref cursor 结果集,oracle – 如何从anther调用一个存储过程并修改返回的refcursor?... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不直接,沒有.

SYS_REFCURSOR是指向結果的指針 – 您唯一能做的就是獲取數據.您無法修改結果集.

P_PROC2可以從SYS_REFCURSOR獲取數據,發出查詢以從其他表中獲取其他數據,并將某些內容返回給調用者.那時,我傾向于傾向于將P_PROC2轉換為流水線表函數.但是您可以返回包含修改后數據的集合.

如果p_proc2絕對需要返回REF CURSOR,則可以將p_proc1的REF CURSOR中的數據提取到全局臨時表中,然后在p_proc2中打開一個新的游標,該游標將查詢此全局臨時表并執行您希望的任何其他操作.就像是

SQL> create global temporary table tmp_emp

2 as

3 select empno, ename, deptno from emp where 1=2;

Table created.

SQL> create or replace procedure p1( p_cur1 out sys_refcursor )

2 as

3 begin

4 open p_cur1 for select * from emp;

5 end;

6 /

Procedure created.

SQL> ed

Wrote file afiedt.buf

1 create or replace procedure p2( p_cur2 out sys_refcursor )

2 as

3 l_cur1 sys_refcursor;

4 l_rec emp%rowtype;

5 begin

6 p1( l_cur1 );

7 loop

8 fetch l_cur1 into l_rec;

9 exit when l_cur1%notfound;

10 insert into tmp_emp( empno, ename, deptno ) values( l_rec.empno, l_rec

ename, l_rec.deptno );

11 end loop;

12 open p_cur2 for

13 select empno, ename, dname

14 from tmp_emp,

15 dept

16 where dept.deptno = tmp_emp.deptno;

17* end;

SQL> /

Procedure created.

SQL> variable rc refcursor;

SQL> exec p2( :rc );

PL/SQL procedure successfully completed.

SQL> print rc

EMPNO ENAME DNAME

---------- ---------- --------------

7839 KING ACCOUNTING

7934 MILLER ACCOUNTING

7782 CLARK ACCOUNTING

7369 smith RESEARCH

7902 FORD RESEARCH

7876 ADAMS RESEARCH

7788 SCOTT RESEARCH

7566 JONES RESEARCH

7900 JAMES SALES

7499 ALLEN SALES

7698 BLAKE SALES

EMPNO ENAME DNAME

---------- ---------- --------------

7654 MARTIN SALES

7844 TURNER SALES

7521 WARD SALES

14 rows selected.

總結

以上是生活随笔為你收集整理的oracle 如何 更改 ref cursor 结果集,oracle – 如何从anther调用一个存储过程并修改返回的refcursor?...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。