SYS_REFCURSOR系統遊標的使用
SYS_REFCURSOR系統遊標的使用
http://blog.itpub.net/26736162/viewspace-2131977/
1.1 函式返回系統遊標
CREATE OR REPLACE FUNCTION F_GET_SYS_REFCURSOR_LHR(P_EMPNO NUMBER) RETURN SYS_REFCURSOR IS CUR_SYS SYS_REFCURSOR; BEGIN OPEN CUR_SYS FOR SELECT LEVEL P_LEVEL, T.EMPNO, T.ENAME, T.MGR, (LPAD(' ', 6 * (LEVEL - 1)) || LEVEL || ':' || T.ENAME || '(' || T.EMPNO || ')') NAME_ALL, SUBSTR(SYS_CONNECT_BY_PATH(T.ENAME, '=>'), 3) ALL_NAME_LEVEL, CONNECT_BY_ROOT(T.ENAME) ROOT, DECODE(CONNECT_BY_ISLEAF, 1, 'Y', 0, 'N') IS_LEAF FROM SCOTT.EMP T START WITH T.EMPNO=P_EMPNO CONNECT BY NOCYCLE MGR = PRIOR EMPNO; RETURN CUR_SYS; EXCEPTION WHEN OTHERS THEN NULL; END; 查詢: SELECT F_GET_SYS_REFCURSOR_LHR(7566) FROM DUAL;
結果如下所示:
1.2 儲存過程返回系統遊標
1.2.1 單個表
CREATE OR REPLACE PROCEDURE PRO_GET_SYS_REFCURSOR_LHR(P_EMPNO NUMBER, SYS_CURSOR OUT SYS_REFCURSOR) IS BEGIN OPEN SYS_CURSOR FOR SELECT * FROM SCOTT.EMP T WHERE T.EMPNO=P_EMPNO; END; / SET SERVEROUTPUT ON DECLARE V_SYS_REFCURSOR_ROWS SYS_REFCURSOR; V_ROWS SCOTT.EMP%ROWTYPE; BEGIN PRO_GET_SYS_REFCURSOR_LHR(7369, V_SYS_REFCURSOR_ROWS); LOOP FETCH V_SYS_REFCURSOR_ROWS INTO V_ROWS; EXIT WHEN V_SYS_REFCURSOR_ROWS%NOTFOUND; DBMS_OUTPUT.PUT_LINE(V_ROWS.EMPNO); END LOOP; CLOSE V_SYS_REFCURSOR_ROWS; END; /
1.2.2 多個表查詢
CREATE OR REPLACE PROCEDURE PRO_GET_SYS_REFCURSOR2_LHR(P_EMPNO NUMBER, SYS_CURSOR OUT SYS_REFCURSOR) IS BEGIN OPEN SYS_CURSOR FOR SELECT A.EMPNO,B.DEPTNO,B.DNAME FROM SCOTT.EMP A, SCOTT.DEPT B WHERE A.DEPTNO = B.DEPTNO AND A.EMPNO = P_EMPNO; END; / CREATE VIEW SCOTT.V_TMP AS SELECT A.EMPNO,B.DEPTNO,B.DNAME FROM SCOTT.EMP A, SCOTT.DEPT B WHERE A.DEPTNO = B.DEPTNO AND 1=2; SELECT * FROM SCOTT.V_TMP; DECLARE V_SYS_REFCURSOR_ROWS SYS_REFCURSOR; V_ROWS SCOTT.V_TMP%ROWTYPE; BEGIN PRO_GET_SYS_REFCURSOR2_LHR(7369, V_SYS_REFCURSOR_ROWS); LOOP FETCH V_SYS_REFCURSOR_ROWS INTO V_ROWS; EXIT WHEN V_SYS_REFCURSOR_ROWS%NOTFOUND; DBMS_OUTPUT.PUT_LINE(V_ROWS.EMPNO||','||V_ROWS.DEPTNO); END LOOP; CLOSE V_SYS_REFCURSOR_ROWS; END;
About Me
........................................................................................................................ ● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除 ● 本文在itpub( http://blog.itpub.net/26736162 )、部落格園( http://www.cnblogs.com/lhrbest )和個人weixin公眾號( xiaomaimiaolhr )上有同步更新 ● 本文itpub地址: http://blog.itpub.net/26736162 ● 本文部落格園地址: http://www.cnblogs.com/lhrbest ● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/ ● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/ ● DBA寶典今日頭條號地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826 ........................................................................................................................ ● QQ群號: 230161599 (滿) 、618766405 ● weixin群:可加我weixin,我拉大家進群,非誠勿擾 ● 聯絡我請加QQ好友 ( 646634621 ) ,註明新增緣由 ● 於 2019-03-01 06:00 ~ 2019-03-31 24:00 在魔都完成 ● 最新修改時間:2019-03-01 06:00 ~ 2019-03-31 24:00 ● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解 ● 版權所有,歡迎分享本文,轉載請保留出處 ........................................................................................................................ ● 小麥苗的微店 : https://weidian.com/s/793741433?wfr=c&ifr=shopdetail ● 小麥苗出版的資料庫類叢書 : http://blog.itpub.net/26736162/viewspace-2142121/ ● 小麥苗OCP、OCM、高可用網路班 : http://blog.itpub.net/26736162/viewspace-2148098/ ● 小麥苗騰訊課堂主頁 : https://lhr.ke.qq.com/ ........................................................................................................................ 使用 weixin客戶端 掃描下面的二維碼來關注小麥苗的weixin公眾號( xiaomaimiaolhr )及QQ群(DBA寶典)、新增小麥苗weixin, 學習最實用的資料庫技術。
........................................................................................................................ |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2639781/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 介紹兩種遊標cursor與sys_refcursor
- Oracle顯示遊標的使用及遊標for迴圈Oracle
- SqlServer遊標的建立與使用SQLServer
- Qt隱藏系統標題欄,使用自定義標題欄QT
- 遊戲局內溝通藝術:標記系統遊戲
- 使用Prometheus監控Linux系統各項指標PrometheusLinux指標
- SVG 座標系統SVG
- Win10系統中如何使用Mac滑鼠指標Win10Mac指標
- 24. 使用MySQL之使用遊標MySql
- oracle 合併多個sys_refcursorOracle
- 標準io和系統io的辨析
- CRM系統好用的標準有哪些?
- 標籤系統測試
- 如何抓住遊戲的目標使用者遊戲
- Oracle與MySQL內嵌遊標的使用示例OracleMySql
- 【系統設計】指標監控和告警系統指標
- 使用 Gatsby.js 搭建靜態部落格 4 標籤系統JS
- Laravel事件系統的使用Laravel事件
- 遊標翻頁模式下的遊標值模式
- OpenGL 座標系統詳解
- 招投標管理系統搭建
- 陪玩遊戲系統釋出動態,是怎麼新增話題標籤的遊戲
- flask-sqlalchemy中使用cursor遊標FlaskSQL
- 完善“使用者畫像”,識別目標受眾-CRM系統
- Oracle:SYS_REFCURSOR作為函式中的輸出引數Oracle函式
- 電子招標採購系統之電子招標採購系統功能清單
- zookeeper的使用(五)--系統模型模型
- PostgreSQL構建通用標籤系統SQL
- 電子招投標系統EBD
- 標籤化檔案管理系統
- 標題:Windows系統啟動流程Windows
- 使用Lakka系統將樹莓派改造為遊戲機樹莓派遊戲
- 關於遊戲陪玩系統效能優化的9大策略和6大指標遊戲優化指標
- 遊戲中的技能系統設計遊戲
- Android中取消系統標題欄的幾種方式Android
- 企業CRM系統選型的標準有哪些?
- 標籤評分:海量標籤如何進行系統治理?
- 電子招標採購系統之Spring Cloud 電子招標採購系統功能清單SpringCloud