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

带输出参数存储过程

发布时间: 2022-08-09 19:21:29

A. 如何执行带输出参数的存储过程

如果你用的是oracle的话, 你在点击相应的存储过程的时候, 右键, 有一个test, 这个test就类似于调式执行, 你可以在 界面上输入参数, 然后点击 图标 有一个放大镜的那个, 点击 绿色的箭头, 最后输出结果 会在 你输入参数的地方 有 显示, 查看就行

B. 带参数的存储过程如何去写谁给举个例子

写带有参数存储过程应该是sql数据库的问题:
先建立一个表,并添加一些数据来进行演示:
create
table
t_student(
id
int
not
null,
name
nvarchar
(10)
null,
age
tinyint
null,
school
nvarchar(20)
null,
class
nvarchar(10)
null,
score
float
null,
constraint
[pk_student_id]
primary
key
clustered(id)
)
go
insert
into
t_student
values(1,'张小红',8,'育才小学','一班',92)
insert
into
t_student
values(2,'王丽丽',8,'育才小学','一班',90)
insert
into
t_student
values(3,'张燕',7,'云华小学','二班',86)
insert
into
t_student
values(4,'刘华',6,'云华小学','二班',85)
一、exec
exec命令可以执行一个存储过程也可以执行一个动态sql语句。先来看看怎么执行存储过程:
新建一个存储过程
sp_getstudent
,返回
成绩大于90
分的学生:
create
procere
[dbo].[sp_getstudent]
@score
float,
@nums
int
output
as
begin
set
nocount
on;
select
*
from
t_student
where
score
>=@score
select
@nums=count(1)
from
t_student
where
score
>=@score
if(@nums>0)
return
1
else
return
0
end
go
该存储过程涉及了
查询操作、返回值和输出参数,我们来看用exec
命令如何调用:
declare
@return_value
int,
@outnums
int
exec
@return_value
=
[dbo].[sp_getstudent]
@score
=
90,
@nums
=
@outnums
output
select
@outnums
as
n'大于90分的人数'
select
'返回值'
=
@return_value
go
执行结果:
我们发现exec
执行存储过程和我们平时程序执行一个方法是几乎一样的,返回值参数
直接就可以等于存储过程的执行后的返回值,输出参数
在后面需要增加
output
关键字。

C. 创建一个带输入参数和输出参数的存储过程

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

不知道是否符合你的要求,欢迎讨论!

D. 存储过程参数输入和输出参数有什么作用

无论是输入的参数还是输出的参数,在此过程中都视为一个参数,所以一般情况下对应你定义的参数类型和个数带入,便可调用。

存储过程后面的是参数列表,其实存储过程就是个方法,通过传递参数来指导方法完成。输出参数相当于返回值,会带output关键字。

其它参数要提前赋值,而output不需要提前赋值,只需要提供一个变量,在存储过程执行完的时候,output类型的变量值就会修改,获得返回值,只能通过这个方法获得返回值,而不能像函数一样直接返回结果。因为存储过程是没有返回值的。

(4)带输出参数存储过程扩展阅读

1、存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。

2、当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。

3、存储过程可以重复使用,可减少数据库开发人员的工作量。

4、安全性高,可设定只有某些用户才具有对指定存储过程的使用权。

E. 关于调用带输出参数的oracle存储过程

可以通过以下方式来进行带参数存储过程执行。

SQL>createorreplaceproceresp_pro10
2(spnoinnumber,spnameoutvarchar2)is
3begin
4select'ename'intospnamefromal;
5end;
6/

过程已创建。

SQL>setserveroutputon
SQL>DECLARE
2spnonumber;
3spnamevarchar2(10);
4BEGIN
5sp_pro10(spno,spname);
6
7dbms_output.put_line(spname);
8END;
9/
ename

PL/SQL过程已成功完成。

F. oracle带参(传入,传出)的存储过程怎么执行

1、新建存储过程,Create or ReplaceProcere CHK_SYS_EMP 检查系统工号。

G. 在MySQL中如何创建一个带输出参数为一个表类型的存储过程

在MySQL中如何创建一个带输出参数为一个表类型的存储过程
首先需要知道“另一个存储过程”的结果集的所有列的类型。
假设“另一个存储过程”的名字是sp1,没有参数,返回的结果集共3列,全部为int型,那么“存储过程”里添加一个与结果集列数相同的临时表或表变量用于接收“另一个存储过程”的结果集
如下
CREATE
PROCEDURE
sp2
AS
DECLARE
@t
table(a
int,b
int,c
int)
INSERT
INTO
@t(a,b,c)
EXEC
sp1
SELECT
*
FROM
@t
使用SQLSERVER存储过程可以很大的提高程序运行速度,简化编程维护难度,现已得到广泛应用。
创建存储过程
和数据表一样,在使用之前需要创建存储过程,它的简明语法是:
引用:
Create
PROC
存储过程名称
[参数列表(多个以“,”分隔)]
AS
SQL
语句
例:
引用:
Create
PROC
upGetUserName
@intUserId
INT,
@ostrUserName
NVARCHAR(20)
OUTPUT
--
要输出的参数
AS
BEGIN
--
将uName的值赋给
@ostrUserName
变量,即要输出的参数
Select
@ostrUserName=uName
FROM
uUser
Where
uId=@intUserId
END
其中
Create
PROC
语句(完整语句为Create
PROCEDURE)的意思就是告诉SQL
SERVER,现在需要建立一个存储过程,upGetUserName
就是存储过程名称,@intUserId

@ostrUserName
分别是该存储过程的两个参数,注意,在SQL
SERVER中,所有用户定义的变量都以“@”开头,OUTPUT关键字表示这个参数是用来输出的,AS之后就是存储过程内容了。只要将以上代码在“查询分析器”里执行一次,SQL
SERVER就会在当前数据库中创建一个名为“upGetUserName”的存储过程。你可以打开“企业管理器”,选择当前操作的数据库,然后在左边的树型列表中选择“存储过程”,此时就可以在右边的列表中看到你刚刚创建的存储过程了(如果没有,刷新一下即可)。
二、存储过程的调用
之前已经创建了一个名为“upGetUserName”的存储过程,从字面理解该存储过程的功能是用来取得某一个用户的名称。存储过程建立好了,接下来就是要在应用程序里调用了,下面看一下在ASP程序里的调用。

H. java中,怎样调用带输出参数的存储过程

1、创建带输出参数的存储过程 如: 在查询分析器中执行declare @mg nvarchar(100)
exec proc_CSCO_SalesFctByStore 100,200,'name',@mg output
print @mg 在Java中调用import java.sql.*;
public class Test{
public static void main(String args[]) throws Exception {//加载驱动DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver()); //获得连接
Connection conn = DriverManager.getConnection("jdbc:odbc:mydata", "sa",""); //创建存储过程的对象
CallableStatement c = conn.prepareCall("{call proc_CSCO_SalesFctByStore(?,?,?,?)}"); //给存储过程的第一个参数设置值
c.setInt(1, 100); //给存储过程的第一个参数设置值
c.setInt(2, 10000); //给存储过程的第一个参数设置值
c.setString(3, user); //注册存储过程的第四个参数
c.registerOutParameter(4, java.sql.Types.VARCHAR); //执行存储过程
c.execute(); //得到存储过程的输出参数值

I. plsql中怎么调用带输出参数的存储过程

1、首先打开一个的PLSQL Developer的界面中,点击左上角的工具,如下图所示。

J. 如何用VB6调用带参数带输出的存储过程

追加参数法调用存储过程
追加参数通过CreateParameter方法,
用来指定属性创建新的Parameter对象。具体语法如下:
Set
parameter
=
command.CreateParameter
(Name,
Type,
Direction,
Size,
Value)
·Name
可选,字符串,代表
Parameter
对象名称。
·Type
可选,长整型值,指定
Parameter
对象数据类型。
·Direction
可选,长整型值,指定
Parameter
对象类型。
·Size
可选,长整型值,指定参数值最大长度(以字符或字节数为单位)。
·Value
可选,变体型,指定
Parameter
对象值。
这种方法与上面一种方法的分别主要在于,
追加参数的方法在向存储过程传递参数时,
这种方法首先通过CreateParameter方法为存储过程创建参数,
然后通过Append方法将创建的参数追加到Parameter
s集合中去。
仍然以存储过程doc_ProcName的调用为例,
关键代码如下:
Dim
mRst
As
ADODB.Recordset
'Recordset
对象表示的是来自基本表或命令执行结果的记录全集。
Dim
prm
As
ADODB.Parameter
'Parameter
对象代表参数或与基于参数化查询或存储过程的Command
对象相关联的参数。
adoconn.ConnectionString
=
Adodc1.ConnectionString
adoconn.Open
Set
adocomm.ActiveConnection
=
adoconn
adocomm.CommandText
=
doc_ProcName
adocomm.CommandType
=
adCmdStoredProc
Set
prm
=
adocomm.CreateParameter(
parameter1,
adTinyInt,
adParamInput,
,
1)
adocomm.Parameters.Append
prm
Set
prm
=
adocomm.CreateParameter(
parameter2,
adInteger,
adParamOutput)
adocomm.Parameters.Append
prm

热点内容
保卫萝卜2安卓版什么时候更新 发布:2024-05-04 20:08:48 浏览:201
建工党建宣传片脚本 发布:2024-05-04 20:07:31 浏览:217
long在c语言中 发布:2024-05-04 19:54:39 浏览:781
svn在本地文件夹 发布:2024-05-04 19:50:21 浏览:445
crontab不执行shell脚本 发布:2024-05-04 19:49:38 浏览:80
安卓机买哪个好2021 发布:2024-05-04 19:49:38 浏览:843
apriori算法改进 发布:2024-05-04 19:24:08 浏览:45
为什么我要自己写脚本 发布:2024-05-04 19:19:13 浏览:183
手机照片重命名为什么还有文件夹 发布:2024-05-04 19:19:06 浏览:309
安卓手机为什么连不上iphone的热点 发布:2024-05-04 19:18:58 浏览:209