當前位置:首頁 » 存儲配置 » mysql存儲過程嵌套游標

mysql存儲過程嵌套游標

發布時間: 2023-07-30 12:31:40

❶ mysql 游標中可以嵌套游標嗎

CREATE PROCEDURE SumOfStu(OUT Sdeptno int,OUT Sdeptname char(20),OUT sumBefore int,OUT sumAfter int)
BEGIN
DECLARE l_sum int;
DECLARE l_Sdeptno int;
DECLARE l_sno int;
DECLARE l_sumBefore int;
DECLARE done, done2 INT DEFAULT 0;
DECLARE cur_out cursor for select SdeptNo,population from Department;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur_out;
REPEAT
SET l_sum=0;
FETCH cur_out INTO l_Sdeptno,l_sumBefore;
IF NOT done THEN
BEGIN
DECLARE cur_inner cursor for select Sno from student where SdeptNo=l_Sdeptno;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done2 = 1;
OPEN cur_inner;
REPEAT
FETCH cur_inner into l_sno;
IF NOT done2 THEN
SET ps_count = 0;
SET l_sum=l_sum+1;
END IF;
UNTIL done2
END REPEAT;
CLOSE cur_inner;
SET done2 = 0;
END;
IF(l_sum<>l_sumBefore) THEN
update department SET population=l_sum where SdeptNo=l_Sdeptno;
select l_Sdeptno INTO Sdeptno;
select SdeptName INTO Sdeptname from Department where SdeptNo=l_Sdeptno;
select l_sumBefore INTO sumBefore;
select l_sum INTO sumAfter;
end IF;
END IF;
UNTIL done
END REPEAT;
CLOSE cur_out;
END

❷ mysql存儲過程中if的嵌套

前幾日寫存儲過程,使用嵌套if語句的時候,碰到一個奇怪的問題,多方找原因無果。後發現是一個很sb的問題。。。

if condition1 then

    if condition1.1 then

        do something1.1;

    else if condition1.2 then

        do something1.2;

    else   -- 報錯的地方

        do something1.3;

    endif;

else

    do something2.2;

endif;

如上,else那裡一直在報錯。

使用了排除法,把else那塊去掉,仍報錯。

整個中間的if那段去掉,編譯成功。

else if和else去掉,編譯成功。

else if去掉,編譯成功。

好吧,else if的問題。elseif應該是沒有空格的!!!

排除法是個好方法,細心是個好習慣😂😂😂。。。

❸ mysql中一個存儲過程中是不是只能有一個游標,不能多個游標

不是,,,,
可以多個游標,,,
游標和循環差不多,過程裡面可以有多個循環,自然也可以有多個游標,
而且還有嵌套游標

❹ MySQL 存儲過程,獲取使用游標查詢的結果集

MySQL 存儲過程中,使用游標查詢,返回的是結果集時,如何查看調用存儲過程輸出結果呢?
解決方案:存儲過程不返回數據,但它能創建和填充另一個表。所以在存儲過程運行中創建臨時表。該臨時表將保存存儲過程中生成的結果集,在遍歷游標時,用insert保存每條數據到臨時表中。後續調用時可以用select語句查詢臨時表中的存儲過程運行結果。

以下有 三種方式 使用游標創建一個存儲過程,統計某一部門下的員工信息

方法一:Loop循環

調用存儲過程:

方法二:While 循環

調用存儲過程:

方法三:REPEAT 循環

調用存儲過程:

上述三種實現方法在測試過程中遇到下述問題。
調用存儲過程查詢臨時表輸出結果時,會發現多循環了一次,像這樣:

解決方法:
在遍歷游標查詢結果時,先判斷游標的結束標志(done) 是否是為1,如果不是1,則向臨時表中插入數據。

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:432
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:743
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:146
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:233
java駝峰 發布:2025-02-02 09:13:26 瀏覽:651
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:532
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726