當前位置:首頁 » 服務存儲 » 存儲過程查詢兩次可以嗎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

存儲過程查詢兩次可以嗎

發布時間: 2023-07-01 08:57:36

① 一個存儲過程可以調用兩個存儲過程嗎

直接調用就可以了。舉個例子把 B 存儲過程調用A 存儲過程。
PROCEDURE A (p_1 in number,p_2 out number)

is
v_1 number;
begin
V_1:=p_1;
p_2:=v_1;
end A;

(1)如果A 與B同在一個package裡面的話。那麼 B裡面直接可以調用A
PS:如果A,B在同一個Package 中無法調用的話,那麼很可能是A,B在Spec里沒有聲明。一個package包含Spec 和Body,兩層。不能調用很可能沒有聲明。聲明後應該ok!

PROCEDURE B(p_1 in number)
is
v_result number;

begin

v_result =A(p_1);

end B;
其中v_result就是調用A的結果,A的返回值。

(2)如果A與B不在同一個package的話
那麼B在調用A 的時候,需要加上pkg的名字
比如:A 存儲過程在pkg :xxom_test_pkg 中

PROCEDURE B(p_1 in number)
is
v_result number;
begin
v_result = xxom_test_pkg .A(p_1);

end B;

----------------------------------------------------------
以上簡單介紹了存儲過程的調用。
希望對你有幫助

② php如何獲取mysql存儲過程的多個結果集存儲過程如下如何獲取兩次Select的結果

假設存儲過程的名字是p_test()

createPROCEDURE`p_test`()
BEGIN
select3as'end';
selectNOW()as'time';
END


php代碼

<?php
/**
*mysqliconnect
*/
$mysqli_link=mysqli_connect($db_host,$db_user,$db_password,$db_database,$db_port);
if($mysqli_link){
echo'dbconnectok'.PHP_EOL;
}else{
die('dbconnecterror');
}

/**
*mysqliquery
*/
$sql_select=<<<EOF
callp_test();
EOF;

//Executemultiquery
if(mysqli_multi_query($mysqli_link,$sql_select)){
do{
//Storefirstresultset
if($result=mysqli_store_result($mysqli_link)){
while($row=mysqli_fetch_row($result)){
var_mp($row);
echoPHP_EOL;
}
mysqli_free_result($mysqli_link);
}
echo'=========='.PHP_EOL;
}while(mysqli_next_result($mysqli_link));
}