当前位置:首页 » 服务存储 » 存储过程返回值
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

存储过程返回值

发布时间: 2022-01-18 04:00:41

‘壹’ oracle 中运行存储过程作为返回值

oracle可以使用out型参数返回值,例如:

sql">--查询某商品编号是否存在,返回查询状态
createorreplaceprocereproc_getGood
(
param_shopIdnumber,--商品编号
param_flagoutnumber--查询状态0不存在
)
as
declarev_countnumber(1);
begin
selectcount(*)intov_countfromtb_goodswhereshopid=param_shopid;

ifv_count=0then
param_flag:=0;
else
param_flag:=1;
endif;

end;

‘贰’ SQL存储过程返回值问题

USE [Test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
---------1
alter tablle dbo.Dim_Structure add updateSTATUS varchar(6)
go
---------1
ALTER PROCEDURE [dbo].[USP_ZJ_Dim]
AS
SET NOCOUNT ON;
BEGIN
declare @StructureType nvarchar(255)
declare @CatecodeID nvarchar(255)
declare @StructureCode nvarchar(255)
declare @Owner nvarchar(255)
declare @Email nvarchar(255)
---------------0
declare ZJ_dim cursor for
select [StructureType],[CatecodeID],[StructureCode],[Owner],[Email]
from test.dbo.lander
Open ZJ_Dim
Fetch next from ZJ_dim into @StructureType,@CatecodeID,@StructureCode,@Owner,@Email
While @@FETCH_STATUS=0
Begin
Update dbo.Dim_Structure
Set Owner =@Owner,Email=@Email
where StructureType=@StructureType and CatecodeID=@CatecodeID and StructureCode=@StructureCode
--------------------2
if @@rowcount>0
update dbo.Dim_Structure set updateSTATUS='sucess' where StructureType=@StructureType and CatecodeID=@CatecodeID and StructureCode=@StructureCode
else
update dbo.Dim_Structure set updateSTATUS='failer' where StructureType=@StructureType and CatecodeID=@CatecodeID and StructureCode=@StructureCode
--------------------2
Fetch next from ZJ_dim into @StructureType,@CatecodeID,@StructureCode,@Owner,@Email
End
Close ZJ_Dim
-----------3
deallocate ZJ_Dim
------------3
End

--1添加新列,如果有updateSTATUS字段就不用添加了,把我代码里的updateSTATUS换成已有字段名
--2我添加的代码

--3建议注销游标,游标不注销太耗费内存
--0可将1写道0的位置(不建议)

‘叁’ 如何获取存储过程返回值

楼主会在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();
就可以了

‘肆’ 存储过程里面执行存储过程 并且返回值 怎么写

以下是我写的存储过程,希望在更新后的列表增加一列返回值,更新的owner,email信息若成功,返回sucess,失败则failer,请高手帮助。USE [Test]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROCEDURE [dbo].[USP_ZJ_Dim]ASSET NOCOUNT ON;BEGINdeclare @StructureType nvarchar(255)declare @CatecodeID nvarchar(255)declare @StructureCode nvarchar(255)declare @Owner nvarchar(255)declare @Email nvarchar(255)declare ZJ_dim cursor for select [StructureType],[CatecodeID],[StructureCode],[Owner],[Email] from test.dbo.lander Open ZJ_Dim Fetch next from ZJ_dim into @StructureType,@CatecodeID,@StructureCode,@Owner,@Email While @@FETCH_STATUS=0 Begin Update dbo.Dim_Structure Set Owner =@Owner,Email=@Email where StructureType=@StructureType and CatecodeID=@CatecodeID and StructureCode=@StructureCode Fetch next from ZJ_dim into @StructureType,@CatecodeID,@StructureCode,@Owner,@Email End Close ZJ_Dim End

‘伍’ SQL中存储过程调用存储过程,怎么取返回值

存储过程中的第一个参数 @title 将接收由调用程序指定的输入值,而第二个参数 @ytd_sales 将向调用程序返回该值。SELECT 语句使用 @title 参数以获得正确的 ytd_sales 值,并将该值赋予 @ytd_sales 输出参数。
CREATE PROCEDURE get_sales_for_title
@title varchar(80), -- This is the input parameter.
@ytd_sales int OUTPUT -- This is the output parameter.
AS
-- Get the sales for the specified title and
-- assign it to the output parameter.
SELECT @ytd_sales = ytd_sales
FROM titles
WHERE title = @title
RETURN
GO

‘陆’ 存储过程返回值

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字段了

‘柒’ SQL 取存储过程的返回值

存储过程应该有返回值的,
问题应该出现在你vb6的调用语句中(第二个参数是输出类型的参数,
是否有正确设置).
你可以在查询分析器中执行此存储过程,
看看返回的结果.
还有,
此存储过程中的select语句最好加上top
1限制,
因为你只要判断是否能选到结果而已:
select
top
1
*
from
tb_package
where
packagenumber=@a

‘捌’ 获取存储过程返回值

这个test(100,200)这个不对的吧,其中有一个是output的值,你这个都变成input了。
还有我估计参数2是输出参数,以为存储过程中需要把 输出的写在输入之后。
创建存储过程语法基本如下:
create or replace procere test1( 参数1 in varchar2(20),参数 2 out varchar2(20))
还有一种可能就是如果你这两个参数既能输入也能输出的话,是
create or replace procere test1( 参数1 in out varchar2(20),参数 2 in out varchar2(20))
这样就分不清楚哪个是输出了。

你是不是java程序组的,负责把BI组编的存储过程放进去?
这样需要多沟通了吧,我对java不是很了解,希望我说的sql方面的能帮到你。

‘玖’ java怎么得到存储过程的返回值

create procere sp_compute
as
v_goods goods%ROWTYPE;
select goodsQuantity,memberId from goods
INTO v_goods
where goodsQuantity>10 order by memberId compute sum(goodsQuantity) by memberId

v_goods里面就是你要的值。这个和JAVA没关系,
另,我这种写法是oracle的procere的写法,不确定是否在你上面可以运行。
或者你可以使用sql function获得返回值。

‘拾’ 带返回值的sql语句(存储过程)

如果不喜欢用output参数的话,多个输出参数可以用表格的方式输出。
例如:
create procere proc_name
as
begin
declare @out_para1 int, @out_para2 nvarchar(20)
set @out_para1 = 100
set @out_para2 = N'摆渡浮桥'

select @out_para1 as 成绩, @out_para2 as 姓名

end