1. 程式人生 > >儲存過程之無引數,in、out、inout引數的講解

儲存過程之無引數,in、out、inout引數的講解

首先建立三個測試表:

如下:

user表裡邊的欄位為userId,userName 使用者表

dept表裡邊的欄位為deptId,deptName部門表

other表裡邊的欄位為otherId,otherName 其他表

建立無引數儲存

create procedure 你建立的名稱()

       begin

           。。。。。。。。。

       end;

如下:

一.建立語句

create procedure userCount()@1

       begin

           SELECT COUNT(userId) FROM USER;@2

       end;@3

注意:

1.   在@2和@3處記得加分號,要不然在執行時,會報語法錯誤

2.   在@1處不論有無引數都需要加 (),

二、在資料庫中檢視你建立的儲存過程語句為

select * frommysql.proc where name = '你上邊建立的名稱'and `type` = 'PROCEDURE'

如下:

select * frommysql.proc where name = 'userCount' and `type` = 'PROCEDURE'

三、檢視儲存過程程式碼語句

show createprocedure 你上邊建立的名稱              如下:

show createprocedure userCount

四、呼叫建立好的儲存過程語句

call userCount ();

五、刪除儲存語句

DROP PROCEDURE你上邊建立的名稱
如下:
DROP PROCEDURE userCount
=====================================================================

一、建立IN引數儲存

語句如下:

CREATE procedure userName(in cType char)
        begin 
      IF cType='U' THEN
                                      SELECT * FROM USER ;
      ELSEIF  cType='D' THEN
                                      SELECT * FROM dept ;
                       ELSE
                                      SELECT * FROM other ;
      END IF;
        end;
呼叫語句如下:
1.CALL userName('A')
2.CALL userName('D')
3.CALL userName('E')

二、建立OUT引數儲存

CREATE PROCEDUREtestOut(OUT outResult char)

           BEGIN

                 SELECT outResult;  //查詢結果1

                 SET outResult='A';//設定值

                 SELECT outResult; //查詢結果2

           END;

呼叫語句如下:
SET @outResult = 'W';

CALLtestOut(@outResult)

呼叫之後返回兩個值結果一和結果而結果1為null 結果2為A

二、建立INOUT引數儲存

CREATE PROCEDUREtestInOut(INOUT inOutResult char)

           BEGIN

                 SELECT inOutResult; 

                 SET inOutResult='A';

                 SELECT inOutResult;

           END;

呼叫語句如下:

SET @inOutResult= 'W';

CALLtestInOut(@inOutResult)

呼叫之後返回兩個值結果一和結果而結果1為W 結果2為A

總結:

IN 輸入引數

表示該引數的值必須在呼叫儲存過程時指定,在儲存過程中修改該引數的值不能被返回,為預設值

OUT 輸出引數

該值可在儲存過程內部被改變,並可返回

INOUT 輸入輸出引數

呼叫時指定,並且可被改變和返回