存儲過程的參數(3)


存儲過程的傳入參數IN

需求:編寫存儲過程,傳入uid,返回該用戶的uname

Delimiter $$
create procedure testa(my_uid int)
Begin
  Declare my_uname varchar(32) default  ‘’;
  select uname into my_uname from users where uid=my_uid;
  select my_uname;
end;
$$
Delimiter ;

1.傳入參數:類型為IN,表示該參數的值必須在調用存儲過程時指定,如果不顯式指定為IN,那么默認就是IN類型。
2.IN類型參數一般只用於傳入,在調用存儲過程中一般不作修改和返回
3.如果調用存儲過程中需要修改和返回值,可以使用OUT類型參數

 

存儲過程的傳出參數OUT
需求:調用存儲過程時,傳入uid返回該用戶的uname

Delimiter $$
create procedure testa(IN my_uid int,OUT my_uname varchar(32))
Begin
select uname into my_uname from users where uid=my_uid;
  select my_uname;
end;
$$
Delimiter ;

1.傳出參數:在調用存儲過程中,可以改變其值,並可返回
2.OUT是傳出參數,不能用於傳入參數值
3.調用存儲過程時,OUT參數也需要指定,但必須是變量,不能是常量
4.如果既需要傳入,同時又需要傳出,則可以使用INOUT類型參數

 

存儲過程的可變參數INOUT
需求:調用存儲過程時,參數my_uid和my_uname,既是傳入,也是傳出參數

Delimiter $$
create procedure testa(INOUT my_uid int,INOUT my_uname varchar(32))
Begin 
  set my_uid=2;
  set my_uname=‘hxf3’;
  select uid,uname into my_uid,my_uname from users where uid=my_uid;
  select my_uid,my_uname;
end;
$$
Delimiter ;

1.可變變量INOUT:調用時可傳入值,在調用過程中,可修改其值,同時也可返回值。
2.INOUT參數集合了IN和OUT類型的參數功能
3.INOUT調用時傳入的是變量,而不是常量




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM