當前位置:首頁 » 編程語言 » sql存儲過程out參數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql存儲過程out參數

發布時間: 2023-07-11 02:54:49

sql存儲過程out與output有什麼不同,感覺它倆是同一個意思,一樣的用法,都是用於輸出。求

你好題主,剛好最近我也在學習SQL,不過我在學習的是Oracle,

MSSQL和Oracle倒是有很多不同的地方。

所以我特意打開MSSQL的服務,在MSSQL里寫了這么一個腳本,希望能幫助到你。

因為本人是做.Net方向的開發者,所以用了C#語言中

以下是腳本內容:

--SQLQueryCreateByFaywool
createprocProc_OutPutTest--創建
@numAint,--numA為存儲過程的參數
@numBint,--numB為另一參數
@numReturnintoutput--此為Output,也就是存儲過程的返回值
as
begin
if(@numA>@numB)
set@numReturn=@numA
else
set@numReturn=@numB--A>B的時候返回A,否則返回B
end

go


declare@numReceiveint--先聲明一個變數用來接收存儲過程的返回值
execProc_OutPutTest1,2,@numReceiveoutput
--調用存儲過程並用@numReturn接收存儲過程的返回值
select@numReceive--將會返回(1,2)中較大的數字:2

go

createprocProc_OutTest--新建存儲過程
@numCint,--參數C
@numDint,--參數D
@numEintout--參數E用來返回
as
begin
if(@numC>@numD)
set@numE=@numC--如果C>D,將C賦值給E
else
set@numE=@numD--否則將D賦值給E
end

go


declare@numOutReceiveint--聲明一個變數
set@numOutReceive=10000--將變數賦值為10000
select@numOutReceive--變數變為10000
execProc_OutTest1,2,@numOutReceiveout--將(1,2,@numOutReceive)三個數字傳入存儲過程
select@numOutReceive--再看變數就變成2了
--總結:

--Out是參數,傳進、傳出,缺一不可,在存儲過程定義的時候一定要有out標識,
--在調用該存儲過程的時候也要有out標識


--OutPut則是相當於存儲過程的返回值
--不用傳進,也不能傳進
--它是在存儲過程中定義,並且輸出的

--一句話:Out相當於C#中的ref參數(傳進、傳出缺一不可),而且傳進傳出的時候都要標識為ref
--OutPut則為C#中的方法返回值類型,在方法定義時就已經定好了

② SQL中存儲過程參數傳遞有哪幾種方法如何獲取存儲過程的返回值

參數傳遞?
參數有in參數、out參數、in out參數
變數可用set和select賦值

獲取返回值只需設置變數、到時輸出就行

單行數據定義固定變數數、
如果結果是數據集、要用游標cursor

③ plsql中怎麼調用帶輸出參數的存儲過程

1、首先打開一個的PLSQL Developer的界面中,點擊左上角的工具,如下圖所示。

④ 幫忙解釋一個SQL Server 中存儲過程的輸入和輸出參數的區別

1. 如果存儲過程h3已經存在,就drop掉
2. 創建存儲過程h3
參數P1,P2,其中P2為輸出參數
存儲過程功能:取學號為P1的學生姓名,由P2輸出
3. 定義變數,調用存儲過程,返回學號是1002的學生姓名

⑤ sqlserver存儲過程返回out參數類型

SQL2008可用表類型
SQL2005以上版本可用xml類型

之前的版本返回結果集

其它引用時可用臨時表或表變數接收結果集

⑥ 關於SQL帶參數存儲的問題

你用out輸出參數,那麼你調用這個存儲過程時,就要先定義一個變數來保存你要傳出的參數值,以你的為例:declare @outXM nchar(10) declare @outXSSL int declare @outXSRQ SmallDatetime exec proc_abc 'G00',@outXM output,@outXSSL output,@outXSRQ output
上面是我手寫的,不一定對,但方式肯定是這樣的