真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Oracle與MySQL內(nèi)嵌游標(biāo)的使用示例

Oracle 游標(biāo)用For循環(huán)比較簡單,MySQL也是最近才開始用,感覺稍微麻煩一點,下邊直接上代碼:

憑借整站使用H5響應(yīng)式網(wǎng)站的創(chuàng)新體驗、定制設(shè)計、設(shè)計團(tuán)隊積累與透明式的服務(wù)過程,符合行業(yè)特點,專屬顧問根據(jù)企業(yè)產(chǎn)品,消費群體屬性,準(zhǔn)確定位;設(shè)計師以目標(biāo)客戶為中心,以突出品牌官網(wǎng)特性為宗旨,定制專屬網(wǎng)站建設(shè)設(shè)計方案。

-----------------------------------------------------------
-- Oracle
-- 內(nèi)嵌游標(biāo)為帶參游標(biāo),參數(shù)為外游標(biāo)值
-----------------------------------------------------------
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 --開始內(nèi)循環(huán)
              --
              --
        END LOOP;
    END LOOP;
  commit;
END;

------------------------------
-- Mysql
-- HANDLER 只能申明一個
-- 內(nèi)循環(huán)結(jié)束后需要重置done
-- 發(fā)現(xiàn)mysql不能直接執(zhí)行begin..end,需要創(chuàng)建存儲過程后調(diào)用執(zhí)行;
------------------------------
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;
  -- 定義內(nèi)外游標(biāo)
  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);-- 查詢條件可直接用外游標(biāo)變量值

  OPEN cur_outer;
  out_loop: LOOP
    fetch cur_outer into item_outer;
      IF  done THEN -- 判斷是否繼續(xù)循環(huán)
        LEAVE out_loop;
      END IF;
        --
        --
    OPEN cur_process; -- 打開內(nèi)嵌游標(biāo)
    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;  -- 關(guān)閉內(nèi)游標(biāo),重置done
  end loop;
  CLOSE cur_outer;
  commit;
END;
call PROC_CURSOR_TEST(); -- 調(diào)用存儲過程
drop procedure PROC_CURSOR_TEST; --刪除


網(wǎng)站標(biāo)題:Oracle與MySQL內(nèi)嵌游標(biāo)的使用示例
網(wǎng)站網(wǎng)址:http://weahome.cn/article/ijjhcj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部