當前位置:首頁 » 存儲配置 » 有返回值的存儲過程

有返回值的存儲過程

發布時間: 2022-06-17 02:28:52

❶ 如何獲取存儲過程返回值

樓主會在c#中使用存儲過程嗎?
如果會的話,sql執行函數賦值給一個變數就可以了
sqlconnection
cnn
=
new
sqlconnection();
cnn.connectionstring
=
"data
source
=
數據源;uid=sa;pwd
=
;database=資料庫名";
cnn.open();//資料庫連接
//設置存儲過程參數
sqlparameter
prm;
sqlcommand
cmd
=
new
sqlcommand();
cmd.connection
=
cnn;
cmd.commandtype
=
commandtype.storedprocere;
cmd.commandtext
=
"存儲過程名";
//項目類型
prm
=
new
sqlparameter();
prm.parametername
=
"參數名1";
prm.sqldbtype
=
sqldbtype.varchar;
prm.size
=
50;
prm.value
=
combobox1.text;
prm.direction
=
parameterdirection.input;
cmd.parameters.add(prm);
...
//可以繼續設置參數,參數個數由存儲過程的具體內容決定
cmd.executenonquery();//執行存儲過程
實際上如果要獲取存儲過程的返回值,只要將上面一句代碼修改成:
int
retn
=
cmd.executenonquery();
就可以了

❷ 有返回值的存儲過程怎麼在命令行執行

--1.OUPUT參數返回值
CREATEPROCEDURE[dbo].[nb_order_insert](
@o_buyeridint,
@o_idbigintOUTPUT
)
AS
BEGIN
SETNOCOUNTON;
BEGIN
INSERTINTO[Order](o_buyerid)
VALUES(@o_buyerid)
SET@o_id=@@IDENTITY
END
END

存儲過程中獲得方法:

DECLARE@o_buyeridint
DECLARE@o_idbigint
EXEC[nb_order_insert]@o_buyerid,@o_idoutput


--2.RETURN過程返回值
CREATEPROCEDURE[dbo].[nb_order_insert](
@o_buyeridint,
@o_idbigintOUTPUT
)
AS
BEGIN
SETNOCOUNTON;
IF(EXISTS(SELECT*FROM[Shop]WHERE[s_id]=@o_shopid))
BEGIN
INSERTINTO[Order](o_buyerid)
VALUES(@o_buyerid)
SET@o_id=@@IDENTITY
RETURN1—插入成功返回1
END
ELSE
RETURN0—插入失敗返回0
END

存儲過程中獲得方法:

DECLARE@o_buyeridint
DECLARE@o_idbigint
DECLARE@resultbit
EXEC@result=[nb_order_insert]@o_buyerid,o_idbigint


以下是程序獲得存儲過程值


1、獲取Output輸出參數值

//存儲過程
//CreatePROCEDUREMYSQL
//@aint,
//@bint,
//@cintoutput
//AS
//Set@c=@a+@b
//GO
SqlConnectionconn=newSqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
conn.Open();
SqlCommandMyCommand=newSqlCommand("MYSQL",conn);
MyCommand.CommandType=CommandType.StoredProcere;
MyCommand.Parameters.Add(newSqlParameter("@a",SqlDbType.Int));
MyCommand.Parameters["@a"].Value=20;
MyCommand.Parameters.Add(newSqlParameter("@b",SqlDbType.Int));
MyCommand.Parameters["@b"].Value=20;
MyCommand.Parameters.Add(newSqlParameter("@c",SqlDbType.Int));
MyCommand.Parameters["@c"].Direction=ParameterDirection.Output;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@c"].Value.ToString());

2、獲取Return返回值

//存儲過程
//CreatePROCEDUREMYSQL
//@aint,
//@bint
//AS
//return@a+@b
//GO
SqlConnectionconn=newSqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
conn.Open();
SqlCommandMyCommand=newSqlCommand("MYSQL",conn);
MyCommand.CommandType=CommandType.StoredProcere;
MyCommand.Parameters.Add(newSqlParameter("@a",SqlDbType.Int));
MyCommand.Parameters["@a"].Value=10;
MyCommand.Parameters.Add(newSqlParameter("@b",SqlDbType.Int));
MyCommand.Parameters["@b"].Value=20;
MyCommand.Parameters.Add(newSqlParameter("@return",SqlDbType.Int));
MyCommand.Parameters["@return"].Direction=ParameterDirection.ReturnValue;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@return"].Value.ToString());

❸ oracle裡面怎麼調用有返回值的存儲過程

create or replace procere xs_proc(temp_name in varchar2,
temp_num out number) is
num_1 number;
num_2 number;
begin
select yu_wen, shu_xue
into num_1, num_2
from xuesheng
where xing_ming = temp_name;
--dbms_output.put_line(num_1 + num_2);
temp_num := num_1 + num_2;
end;

單個返回值的oracle存儲過程

❹ 如何調用存儲過程,有返回值的,有參數的,存儲過程中調用存儲過程

create procere proc_a as declare b int; c varchar2(10); begin proc_b(b, c); dbms_output.put_line (c); end procere a; 你照我這個寫吧 proc_b(b, c); proc_b是你調用的帶返回參數的存儲過程 b是輸入變數,c是輸出變數

❺ oracle 執行有返回值的存儲過程報錯

P_BOXNO VARCHAR2(1024);
P_BOXNO_NOTE VARCHAR2(1024);
P_MSG VARCHAR2(1024);

DBMS_OUTPUT.PUT_LINE(P_BOXNO || P_BOXNO_NOTE || P_RET || P_MSG);

❻ oracle怎麼寫一個無參存儲過程去調用一個有參數有返回值的存儲過程

create
procere
proc_a
as
declare
b
int;
c
varchar2(10);
begin
proc_b(b,
c);
dbms_output.put_line
(c);
end
procere
a;
你照我這個寫吧
proc_b(b,
c);
proc_b是你調用的帶返回參數的存儲過程
b是輸入變數,c是輸出變數

❼ mysql存儲過程可以有返回值嗎

MySQL存儲過程 如果和SQL一樣的話,那麼就是本身就有一個返回值了。所以只要引用該存儲過程就可以。。

❽ sql 帶返回值的存儲過程

你使用
select *
from Toys
where cToyId='000001' 有返回值???

----------------------------
感覺你寫的沒有錯。。。。
sum(mToyCost)>70 他也返回'mToyCost<60' ???
如果是這樣試試下面的
create proc aaa @cOrderNo char(20)
as
begin
declare @b int
select @b=sum(mToyCost) from OrderDetail where cOrderNo=@cOrderNo group by cOrderNo
if @b >=60
select @b +'mToyCost>=60'
else
select @b + 'mToyCost<60'
end

❾ 存儲過程返回值

create procere InsertNull
@TableName varchar(50),
@Result int output
AS
declare @dtName varchar(1000)
set @dtName='insert into ' + @TableName +' default values'
exec(@dtName)
set @Result=SCOPE_IDENTITY()
select @Result As Result --注意,這里顯示出來
go

然後exec insertnull ...參數
就相當於select Result

如果在程序里,執行這句之後,就能訪問Result欄位了

❿ 存儲過程中調用帶返回值的函數

如果是ACCESS、MySQL、SQL 2000 資料庫

SELECT * FROM tabel_ WHERE date < (now()-30)

資料庫都自帶很多函數的

熱點內容
小米路由器wifi怎麼配置 發布:2024-12-29 02:09:15 瀏覽:294
魔都戰爭伺服器怎麼逃離 發布:2024-12-29 01:58:45 瀏覽:504
winccvb腳本 發布:2024-12-29 01:51:03 瀏覽:189
光遇安卓服如何贈送好友季卡 發布:2024-12-29 01:48:43 瀏覽:695
android密碼正則 發布:2024-12-29 01:48:42 瀏覽:952
rfid防碰撞演算法 發布:2024-12-29 01:43:05 瀏覽:660
怎麼知道伺服器埠 發布:2024-12-29 01:43:00 瀏覽:188
安卓游戲rar安裝包在哪裡 發布:2024-12-29 01:32:11 瀏覽:396
linux伺服器流量 發布:2024-12-29 01:32:11 瀏覽:764
android點擊改變顏色 發布:2024-12-29 01:24:04 瀏覽:952