儲存過程,其本質還是函式——但其規定:不能有返回值;
說明:1,in:用於設定該變數是用來「接收實參資料」的,即「傳入」;預設不寫,就是in
2,out:用於設定該變數是用來「儲存儲存過程中的資料」的,即「傳出」,即函式中必須對它賦值;
3,inout:是in和out的結合,具有雙向作用;
4,對於,out和inout設定,對應的實參,就「必須」是乙個變數,因為該變數是用於「接收傳出資料」;
call 儲存過程名 (實參1,實參2,.... )
它應該是在「非程式設計環境中」呼叫,即執行增刪改查的場景下;
舉例1:
#建立乙個儲存過程:
#該儲存過程的目標是:將3個資料寫入到表tab_int;
#並返回該錶的第乙個欄位的前3大值的行
呼叫:
舉例2(使用in,out,inout):
下面使用正確呼叫方法:
drop procedure 儲存過程名;
//呼叫儲存函式:
$v1 = $_post[『a』];
$v2 = $_post[『b』];
$sql = 「insert into tab1 (id, f2, f3) values ( null, now(), func1($v1 , $v2 ) )」;
$result = mysql_query($sql);
//呼叫儲存過程:
$v1 = $_post[『username』];
$v2 = $_post[『pass』];
$v3 = $_post[『age』];
$sql = 「 call insert_user($v1, $v2, $v3 ); 」; //insert_user()是乙個儲存過程,帶3個引數,會將該3個引數資料寫入(insert)某個表中。
$result = mysql_query();
另乙個使用儲存過程返回結果集的例子:
$id = $_get[『id』];
$sql = 「call get_user_info( $id ) 「; //get_user_info()是乙個儲存過程,其中會返回某個指定id的使用者資訊
$result = mysql_query($sql); //這裡得到的就是「結果集」了
mysql中儲存過程
delimiter,簡單解釋下這個命令的用途,在mysql中每行命令都是用 結尾,回車後自動執行,在儲存過程中 往往不代表指令結束,馬上執行,而delimiter原本就是 的意思,因此用這個命令轉換一下 為 這樣只有收到 才認為指令結束可以執行 檢視myql中已經存在的儲存過程 show proce...
mysql中儲存過程學習
例項 獲取登入 登出 操作日誌 命令日誌 從系統日誌表查詢,命令日誌表查詢結過儲存到臨時表中,得到所有的日誌,然後按條件進行篩選 create function getlog uname varcharacter 200 starttime datetime,endtime datetime,log...
Oracle中儲存過程
1 建立乙個儲存過程 create or replace procedure pro name parameter1 parameter2 is as begin plsql sentences pl sql語句,儲存過程功能實現的主體 exception dowith sentences 異常處理...