Oracle與MySQL內嵌遊標的使用示例
Oracle 遊標用For迴圈比較簡單,MySQL也是最近才開始用,感覺稍微麻煩一點,下邊直接上程式碼:
-----------------------------------------------------------
-- Oracle
-- 內嵌遊標為帶參遊標,引數為外遊標值
-----------------------------------------------------------
DECLARE
cursor cur_outer is select dept_id from tbl_test_dept;
cursor cur_inner(deptid varchar2) is (SELECT user_id FROM tbl_test_user WHERE dept_id=deptid);
BEGIN
FOR DEPT_ITEM IN cur_outer LOOP
--
--
FOR KEY_ITEM IN cur_process(DEPT_ITEM.DEPT_ID) LOOP --開始內迴圈
--
--
END LOOP;
END LOOP;
commit;
END;
------------------------------
-- Mysql
-- HANDLER 只能申明一個
-- 內迴圈結束後需要重置done
-- 發現mysql不能直接執行begin..end,需要建立儲存過程後呼叫執行;
------------------------------
CREATE PROCEDURE `PROC_CURSOR_TEST`()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE item_outer VARCHAR(50);outer
DECLARE item_inner VARCHAR(50);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-- 定義內外遊標
DECLARE cur_outer cursor for select dept_id from tbl_test_dept;
DECLARE cur_inner cursor for (SELECT user_id FROM tbl_test_user WHERE dept_id=item_outer);-- 查詢條件可直接用外遊標變數值
OPEN cur_outer;
out_loop: LOOP
fetch cur_outer into item_outer;
IF done THEN -- 判斷是否繼續迴圈
LEAVE out_loop;
END IF;
--
--
OPEN cur_process; -- 開啟內嵌遊標
inner_loop: LOOP
fetch cur_inner into item_inner;
IF done THEN
LEAVE inner_loop;
END IF;
--
--
end loop;
CLOSE cur_inner;
SET done = 0; -- 關閉內遊標,重置done
end loop;
CLOSE cur_outer;
commit;
END;
call PROC_CURSOR_TEST(); -- 呼叫儲存過程
drop procedure PROC_CURSOR_TEST; --刪除
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31530407/viewspace-2152932/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 動態遊標的使用Oracle
- SqlServer遊標的建立與使用SQLServer
- mysql 遊標的使用(儲存過程)MySql儲存過程
- 關於MySQL遊標的巢狀使用MySql巢狀
- oracle 儲存過程遊標的使用Oracle儲存過程
- Oracle顯示遊標的使用及遊標for迴圈Oracle
- SQL SERVER 遊標的使用SQLServer
- Android/iOS內嵌Unity開發示例AndroidiOSUnity
- MyBatis 呼叫Oracle儲存過程,傳參、返回遊標的值獲取--示例MyBatisOracle儲存過程
- Oracle遊標示例Oracle
- Oracle遊標共享,父遊標和子游標的概念Oracle
- SYS_REFCURSOR系統遊標的使用
- Oracle PL/SQL 關於遊標的介紹OracleSQL
- 關於Oracle遊標的簡單定義Oracle
- MYsql-儲存過程-遊標的巢狀MySql儲存過程巢狀
- 遊標的學習
- oracle遊標的一些基礎問題Oracle
- 動態遊標的操作~~~
- orcale 之遊標的屬性
- SQL Story(十)————遊標的應該與不應該 (轉)SQL
- JDK中內嵌JS引擎介紹及使用JDKJS
- Nginx 內嵌變數Nginx變數
- Oracle將BI工具內嵌到ERP系統中Oracle
- Oracle在融合應用中內嵌商業智慧工具Oracle
- SpringMVC使用Jetty作為內嵌伺服器SpringMVCJetty伺服器
- 使用iframe內嵌網頁的時候,如何做到內嵌網頁的高度自適應 有大用網頁
- MongoDB查詢內嵌文件MongoDB
- oracle pl/sql儲存過程內外層遊標cursor巢狀引數化示例OracleSQL儲存過程巢狀
- 關於遊標的一些理解
- 【CURSOR】Oracle繫結變數、執行計劃對遊標的影響Oracle變數
- Oracle expdp/impdp 使用示例Oracle
- 淺談小程式內嵌網頁及內嵌網頁跳轉分享實現網頁
- Linux中文字型的轉換與內嵌(轉)Linux
- 小程式內嵌h5H5
- 禁用內嵌檢視的排序排序
- 正確使用MySQL JDBC遊標MySqlJDBC
- SVG 立方體內嵌路徑拼接SVG
- 客戶端內嵌Vue頁面客戶端Vue