当前位置:首页 » 存储配置 » 存储过程输入参数输出参数

存储过程输入参数输出参数

发布时间: 2022-05-07 02:07:20

存储过程里怎么什么是输出参数什么是输入参数

使用输出参数类似于使用返回值。但是输出参数具有两个重要的优势。可以使用输出参数从存储过程传递出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管理工具,新建一个表。

热点内容
linux查看mysql表 发布:2024-11-17 08:48:50 浏览:75
java日期星期几 发布:2024-11-17 08:48:39 浏览:924
java抽象实例化 发布:2024-11-17 08:43:16 浏览:384
matlab编译工具箱 发布:2024-11-17 08:22:44 浏览:31
eda编译和综合区别 发布:2024-11-17 08:12:30 浏览:994
ftp服务器前端怎么用 发布:2024-11-17 08:12:30 浏览:67
基金怎么配置才合适 发布:2024-11-17 07:59:53 浏览:787
linux下编译cpp 发布:2024-11-17 07:59:18 浏览:645
javaweb数据库 发布:2024-11-17 07:59:18 浏览:910
hadoop在win10上编译 发布:2024-11-17 07:47:35 浏览:292