當前位置:首頁 » 存儲配置 » mysql存儲過程如何調用

mysql存儲過程如何調用

發布時間: 2023-12-21 17:03:55

『壹』 Mysql裡面sql語句調用存儲過程,該如何寫

這樣:

CREATEPROCEDUREsp_add(a int, b int,outc int)

begin

set c=a+ b;

end;

調用過程:

call sp_add (1,2,@a);

select @a;

(1)mysql存儲過程如何調用擴展閱讀:

注意事項

存儲過程(stored procere)是一組為了完成特定功能的SQL語句集合,經編譯後存儲在伺服器端的資料庫中,利用存儲過程可以加速SQL語句的執行。

存儲過程分為系統存儲過程和自定義存儲過程。

系統存儲過程在master資料庫中,但是在其他的資料庫中可以直接調用,並且在調用時不必在存儲過程前加上資料庫名,因為在創建一個新資料庫時,系統存儲過程在新的資料庫中會自動創建。

自定義存儲過程,由用戶創建並能完成某一特定功能的存儲過程,存儲過程既可以有參數又有返回值,但是它與函數不同,存儲過程的返回值只是指明執行是否成功,並不能像函數那樣被直接調用,只能利用execute來執行存儲過程。

創建存儲過程

SQL Server創建存儲過程:

create procere 過程名

@parameter 參數類型

@parameter 參數類型

。。。

as

begin

end

執行存儲過程:execute 過程名

『貳』 mybatis調用mysql存儲過程(返回參數,單結果集,多結果集)

mybatis調用mysql存儲過程(返回參數,單結果集,多結果集)

註: RETCODE、RETDESC 這里的輸出值不用在函數里 SELECT RETCODE; ,因為即使沒有,當執行成功後會自動返回在對象里(Object/Map),所以在函數里不用SELECT一下了。

Navicat中執行函數需要輸入參數值,也是對應圖1,@A@B表示輸出值。(一個輸入值兩個輸出值)

1. 標注一二三四五處如果存在,則執行成功後返回結果如下

標注一對應結果1
標注二對應結果2
標注三對應結果3
標注四對應結果4
標注五對應結果5
其中結果3返回的是集合。
存在這么多結果,想要取結果3中的集合是不好取的,只有像下圖一樣只有一個結果才好取出集合。

2. 標注一二四五處如果不存在,則執行成功後返回結果如下

只有結果1,對應的是標注三處的值。可以取出集合

函數p_plicate_enroll

『叄』 mysql帶參數的存儲過程怎麼調用

調用MySQL存儲過程使用CALL命令
語法:CALL 存儲過程名(參數1[,參數2..]]);
例如:
Call myPro1;
Call myPro2('001');

『肆』 如何調出mysql的存儲過程

mysql>
mysql> delimiter $$
mysql>
mysql> CREATE FUNCTION myFunction
-> (in_string VARCHAR(255),
-> in_find_str VARCHAR(20),
-> in_repl_str VARCHAR(20))
->
-> RETURNS VARCHAR(255)
-> BEGIN
-> DECLARE l_new_string VARCHAR(255);
-> DECLARE l_find_pos INT;
->
-> SET l_find_pos=INSTR(in_string,in_find_str);
->
-> IF (l_find_pos>0) THEN
-> SET l_new_string=INSERT(in_string,l_find_pos,LENGTH(in_find_str),in_repl_str);
-> ELSE
-> SET l_new_string=in_string;
-> END IF;
-> RETURN(l_new_string);
->
-> END$$
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> delimiter ;
mysql> select myFunction('ABC','A','Z');
+---------------------------+
| myFunction('ABC','A','Z') |
+---------------------------+
| ZBC |
+---------------------------+
1 row in set (0.00 sec)
mysql> drop function myFunction;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql>

給你個例子自己參考一下吧!

『伍』 mysql 存儲過程怎麼調用

php調用mysql存儲過程和函數的方法
存儲過程和函數是MySql5.0剛剛引入的。關於這方面的操作在PHP裡面沒有直接的支持。但是由於Mysql PHP API的設計,使得我們可以在以前的PHP版本中的mysql php api中支持存儲過程和函數的調用。

在php中調用存儲過程和函數。

1。調用存儲過程的方法。

a。如果存儲過程有 IN/INOUT參數,聲明一個變數,輸入參數給存儲過程,該變數是一對,

一個php變數(也可以不必,只是沒有php變數時,沒有辦法進行動態輸入),一個Mysql

變數。

b。如果存儲過程有OUT變數,聲明一個Mysql變數。

mysql變數的聲明比較特殊,必須讓mysql伺服器知道此變數的存在,其實也就是執行一條mysql語句。

入set @mysqlvar=$phpvar ;

c。使用mysql_query()/mysql_db_query()執行mysql 變數聲明語句。

mysql_query("set @mysqlvar=$pbpvar");

這樣,在mysql伺服器裡面就有一個變數,@mysqlar。如果是IN參數,那麼其值可以由phpar傳入。

d。 如果是存儲過程。

1。執行 call procere()語句。

也就是mysql_query("call proceer([var1]...)");

2. 如果有返回值,執行select @ar,返回執行結果。

mysql_query("select @var)"

接下來的操作就和php執行一般的mysql語句一樣了。可以通過mydql_fetch_row()等函數獲得結果。

如果時函數。 直接執行 select function() 就可以了。
$host="localhost";
$user="root";
$password="11212";
$db="samp_db";
$dblink=mysql_connect($host,$user,$password)
or die("can't connect to mysql");
mysql_select_db($db,$dblink)
or die("can't select samp_db");
$res=mysql_query("set @a=$password",$dblink);
$res=mysql_query("call aa(@a)",$dblink);
$res=mysql_query("select @a",$dblink);
$row=mysql_fetch_row($res);
echo $row[0];

『陸』 mysql怎麼調試存儲過程

mysql調試存儲過程具體方法:

在你的存儲過程中加入如下語句:
SELECT 變數1,變數2;

然後用mysql自帶的cmd程序進入mysql> 下。
call 你的存儲過程名(輸入參數1,@輸出參數);(注:這里幫助下新同學,如果你的存儲過程有輸出變數,那麼在這里只需要加 @ 然後跟任意變數名即可);
即可發現你的變數值被列印到了cmd下

『柒』 java裡面怎麼調用mysql的存儲過程的

java代碼:

Class.forName("com.mysql.jdbc.Driver");

Connectioncon=DriverManager

.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=111111");

Stringsql="{callsel(?)}";

CallableStatementcs=(CallableStatement)con.prepareCall(sql);

cs.execute();

Stringname=cs.getString(1);

System.out.println(name);

創建存儲過程代碼:

dropprocereifexistssel;

createproceresel(outname1varchar(225))

begin

;

end

輸出結果:

『捌』 mysql資料庫中怎麼調用同時帶有輸入輸出參數的存儲過程

int year,month,day;
while(1)
{
printf("\n請選擇你所需要的服務:\n");
printf("\n輸入1求某個日期對應的星期");
printf("\n輸入2結束程序\n");
scanf("%d",&option);
switch(option)

『玖』 mysql存儲過程怎麼調用自定義函數

創建存儲過程
mysql>
delimiter
$
--
delimiter
$是設置
$為命令終止符號,代替默認的分號,因為分號有其他用處.
mysql>
create
procere
sp_test(IN
pi_id
int,
OUT
po_name
varchar(10))
->
begin
->
select
*
from
test.tb_test;
->
select
tb_test.name
into
po_name
from
test.tb_test
where
tb_test.id
=
pi_id;
->
end
->
$
Query
OK,
0
rows
affected
(0.00
sec)
mysql>
delimiter
;
--
恢復分號作為分隔終止符號
5.調用存儲過程
mysql>
set
@po_name=';
Query
OK,
0
rows
affected
(0.00
sec)
mysql>
call
sp_test(1,@po_name);

熱點內容
ae加快緩存 發布:2024-11-28 23:50:34 瀏覽:341
java的版本號 發布:2024-11-28 23:48:18 瀏覽:99
sql存儲過程區別 發布:2024-11-28 23:35:37 瀏覽:918
ms計算機需要什麼配置 發布:2024-11-28 23:34:21 瀏覽:974
淘寶直接訪問的流量 發布:2024-11-28 23:33:11 瀏覽:49
python發微博 發布:2024-11-28 23:29:31 瀏覽:725
sql清空命令 發布:2024-11-28 22:58:53 瀏覽:487
melpython 發布:2024-11-28 22:49:54 瀏覽:211
伺服器瀏覽量什麼意思 發布:2024-11-28 22:49:09 瀏覽:965
可不可以同時安裝幾個編譯器 發布:2024-11-28 22:34:08 瀏覽:935