存儲過程輸入參數輸出參數
① 存儲過程里怎麼什麼是輸出參數什麼是輸入參數
使用輸出參數類似於使用返回值。但是輸出參數具有兩個重要的優勢。可以使用輸出參數從存儲過程傳遞出VarChar,Int,Money或任何其他數據類型的值。而返回值則只能返回整數。
輸出參數的另一個優勢就是在一個存儲過程中可以有多個輸出參數。一個存儲過程可以包含1024個參數(其中包括輸入和輸出參數),但是只能包含一個返回值。
比如下面的存儲過程根據提供的作者名來檢索該作者的姓,該存儲過程有一個名為@firstname的輸入參數和一個@lastname的輸出參數。
Create Procere GetLastName (@firstname Varchar(20),@lastname Varchar(20) Output) As
Select @lastname=au_lname From Authors Where au_fname=@firstname
程序清單使用了這個存儲過程。注意程序清單中如何創建參數,指定尺寸和設置參數方向。在執行了存儲過程後,就可以從Parameters集合中獲取輸出的參數值了。注意是如何使用IsDBNull()來 判別輸出參數是否有值。如果沒有返回任何值,則不要把它試圖賦值給字元串變數。
<%@ Import Namespace="System.Data.sqlClient" %>
<%@ Import Namespace="System.Data" %>
<%
Dim conPubs As SqlConnection
Dim cmdLastName As SqlCommand
Dim parmLastName As SqlParameter
Dim strLastName As String
'本站為了防止在源代碼中泄露用戶名和密碼,使用通過web.config提供的資料庫連接字元串。
'你在本地使用時,將下面這三行語句刪除或注釋掉。
Dim strConString as string
strConString=ConfigurationSettings.AppSettings("conString")
conPubs=New SqlConnection(strConString)
'你本地測試時,將下面這行的注釋符去掉,並填入相應的資料庫用戶名和密碼,資料庫名和伺服器名。
'conPubs = New SqlConnection( "Server=localhost;uid=sa;pwd=secret;database=pubs" )
cmdLastName = New SqlCommand( "getLastname", conPubs )
cmdLastName.CommandType = CommandType.StoredProcere
' FirstName Input Parameter
cmdLastName.Parameters.Add( "@firstname", "Ann" )
' LastName Output Parameter
parmLastName = cmdLastName.Parameters.Add( "@lastname", SqlDbType.Varchar )
parmLastName.Size = 40
parmLastName.Direction = ParameterDirection.Output
' Execute Command
conPubs.Open()
cmdLastName.ExecuteNonQuery()
' Retrieve value of output parameter
If Not IsDBNull( cmdLastName.Parameters( "@lastname" ).Value ) Then
strLastName = cmdLastName.Parameters( "@lastname" ).Value
Else
strLastName = "Unknown"
End If
conPubs.Close()
%>
The last name is <%=strLastName%>
② Sql Server中存儲過程中輸入和輸出參數(簡單實例 一看就懂)
[sql]
--
===================【創建存儲過程】=====================
USE
[Message]
GO
/******
Object:
StoredProcere
[dbo].[讀取外部資料庫查詢]
Script
Date:
10/24/2012
05:39:16
******/
SET
ANSI_NULLS
ON
GO
SET
QUOTED_IDENTIFIER
ON
GO
--
=============================================
\\
Working沒有變1,錯誤碼沒有測試,計劃時間測試,企業名稱
create
PROCEDURE
[dbo].[資料庫查詢]
@SmsContent
varchar(20)='1231',
--
輸入參數
@bj1
int
out
--
輸入出參數
AS
BEGIN
SELECT
@bj1=count(Id)
from
sss
END
--
===============【調用】==================
USE
[Message]
DECLARE
@return_value
int
EXEC
[dbo].[資料庫查詢]
'1231',@return_value
output
SELECT
@return_value
③ oracle中怎麼執行帶有輸出參數的存儲過程,在程序中我知道怎麼調用,
1、新建一個存儲過程(Procere)。
④ SQL Server 2005 中存儲過程的輸入參數和輸出參數的區別
輸入參數是傳遞給存儲過程的,就是原料.輸出參數是存儲過程的產出,就是產品.
在調用存儲過程前,相關的輸入參數必須已經有確定的值; 存儲過程根據輸入參數的值以及內部演算法,將計算的結果保存到輸出參數中. 輸出參數在調用存儲過程前無須有確定的值,只需定義這樣一個變數,將他傳給存儲過程,存儲過程執行之後,該輸出參數就有了確定的值.可以進一步使用該值.
⑤ sybase資料庫中存儲過程參數中能不能同時是輸入參數也是輸出參數,
可以的,可在參數後加output來實現
如:@par
varchar(20)
output
default
值可以這樣
@test
integer
=
10
default
值只有在不提供該參數值時才有效。
⑥ sql資料庫中的存儲過程在創建時跟在其名字後面的參數有什麼用 輸入參數與輸出參數有什麼區別
存儲過程後面的是參數列表,其實存儲過程就是個方法,通過傳遞參數來指導方法完成。輸出參數相當於返回值,會帶output關鍵字
⑦ 創建一個帶輸入參數和輸出參數的存儲過程
create proc Tproc
@id nchar(10),
@name nchar(20),
@sex nchar(10)
as
begin
declare @hasData nchar(10)
select @hasData=id from S where id=@id
if @hasData!=''
begin
print '學號重復'
return
end
if @name=''
begin
print '名字不能為空'
return
end
if(@sex!='男' and @sex!='女')
begin
print '性別只能是男或女'
return
end
else
begin
insert into S values(@id,@name,case @sex when '男' then 1 when '女' then 0 end)
if(@@ROWCOUNT>0)
print '記錄成功插入!'
else
print '記錄未成功插入!'
end
end
不知道是否符合你的要求,歡迎討論!
⑧ oracle存儲過程的輸入參數和輸出參數
是的,無論是輸入的參數還是輸出的參數,在此過程中都視為一個參數,所以一般情況下對應你定義的參數類型和個數帶入,便可調用。
⑨ sql server 中 一個要輸入參數和輸出參數的存儲過程。
1、首先我們需要打開SQL Server Managment管理工具,新建一個表。