mysql資料庫中儲存過程的寫法以及游標的用法

2021-09-19 06:08:52 字數 1363 閱讀 9825

mysql中的function定義以及使用游標迴圈賦值。 下面**主要功能:

–通過使用者id,獲取其關聯的角色id,迴圈獲取角色名稱

create definer=`root`@`localhost` function `f_op_get_role_names`(

pi_userid int -- 傳入的引數

) returns varchar(32) charset utf8 -- 返回的引數型別

begin

declare a varchar(32);

declare v_role_id varchar(32);

declare v_role_name varchar(32);

declare s int default 0;

declare po_rtn varchar(300) ;

declare role cursor for select role_id from op_sys_user_role where user_id = pi_userid;

-- 定義游標,也可以是乙個物件,然後將物件值複製給物件名role。屬於乙個游標。

declare continue handler for sqlstate '02000' set s=1; -- 迴圈標誌,複製就可以了

open role ;

fetch role into v_role_id ;

while a<>1 do -- 當a不等於1的時候執行內容操作

set v_role_name = '';

-- 通過id獲取角色名稱

select

role_name

into v_role_name from

op_sys_role

where

1 = 1 and id = v_role_id;

-- 無資料時

if v_role_name is null or v_role_name = '' then

return null;

else

-- 拼接返回值

if po_rtn = '' then

set po_rtn = v_role_name;

else

set po_rtn = po_rtn || ';' ||v_role_name;

end if;

end if;

fetch role into v_role_id ,v_role_name ; -- //再在迴圈中將游標中的值傳入到變數中

end while ;

close role;

return po_rtn;

end

資料庫中儲存過程意義

建立了是拿來用的,至於為什麼要用儲存過程,要先了解儲存過程存在的意義 儲存過程由 sql語句 和流程控制 語句組成。它的功能包括 接受引數 呼叫另一過程 返回乙個狀態值給呼叫過程或批處理,指示呼叫成功或失敗 返回若干個引數值給呼叫過程或批處理,為呼叫者提供動態結果 在遠端sql server中執行等...

資料庫中儲存過程的除錯

一.除錯sql server 2000 1.設定帳戶。1 在windows服務中找到mssqlserver,雙擊彈出對話方塊。2 選擇 登陸 選項卡,選中 此帳戶 輸入乙個管理員帳戶和密碼。3 重啟服務。2.在查詢分析器執行單步除錯。1 在查詢分析器中,右鍵單擊儲存過程,選擇 除錯 二.vs2005...

mysql中儲存過程

delimiter,簡單解釋下這個命令的用途,在mysql中每行命令都是用 結尾,回車後自動執行,在儲存過程中 往往不代表指令結束,馬上執行,而delimiter原本就是 的意思,因此用這個命令轉換一下 為 這樣只有收到 才認為指令結束可以執行 檢視myql中已經存在的儲存過程 show proce...