当前位置:首页 » 存储配置 » 获取存储过程的返回值

获取存储过程的返回值

发布时间: 2022-08-17 16:32:04

sql存储过程的返回值

你这个
存储过程
,这样直接返回字符串,是不行的。存储过程直接返回,只能返回int类型的数据,或者是int类型的字符串。
你需要为你的存储过程定义一个输出参数。然后在调用时,接收这个输出参数。

⑵ 怎么从sqlserver的存储过程获得返回的数据

SQL Server中存储过程的返回值不是通过return语句返回的(return语句是在用户自定义函数中使用的),而是通过存储过程的参数来返回,在定义存储过程的参数时使用关键字output来指定此参数是返回值。
而在调用存储过程时,也必须使用关键字给接收返回值的变量,这样才能在调用时获得存储过程的返回值。
示例:

create procere dbo.pr_add @a int, @b int, @c int outputas set @c = @a + @bgo

调用:

declare @v intexecute dbo.pr_add 1, 2, @v outputselect @v

⑶ 如何调用存储过程的返回值

存储过程中的第一个参数 @title 将接收由调用程序指定的输入值,而第二个参数 @ytd_sales 将向调用程序返回该值。SELECT 语句使用 @title 参数以获得正确的 ytd_sales 值,并将该值赋予 @ytd_sales 输出参数。 CREATE PROCEDURE get_sales_for

⑷ 获取存储过程返回值

这个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方面的能帮到你。

⑸ sqlalchemy 调用 mssql存储过程如何获取返回值

请参参考以下代码:

from pyodbc import drivers, connect, Connection, Cursor

def output_cursor(cursor: Cursor):

...."""打印输出当前结果集"""

....print('-' * 80)

....print(','.join(_[0] for _ in rst.description))

....for row in cursor:

........print(row)


spt = '''

declare @returns int,@count int,@lastDoTime datetime

exec @returns = test_proc_call @count output,@lastDoTime output

select @returns returns,@count count,@lastDoTime lastDoTime

'''

cur = db.execute(spt)

for rst in iter_cursor(cur):

....output_cursor(rst)


输出:

--------------------------------------------------------------------------------

returns,count,lastDoTime

(18, 21, datetime.datetime(2020, 3, 4, 14, 43, 46, 923000))


存储过程:test_proc_call

create procere test_proc_call

(@p1 int output

,@p2 datetime output

)

as

begin

--此过程有返回值,有output参数,有结果集

select @p1=max(id),@p2=max(LastDoTime)

from Tasks with(nolock)

select * from Tasks with(nolock)

return @@rowcount

end

⑹ 如何在pb脚本当中获取存储过程的返回值

本文拟以SYBASE ASE 10.X和11.X数据库为例,说明如何在PB脚本当中获取存储过程的返回值。作为一个存储过程,其输出的结果数据可能包括三类:SELECT结果集、RETURN结果、OUTPUT参数。尽管输出方式众多,但PB脚本仅仅借助简单的FETCH…INTO…语句即可全部获取这些输出数据,具体方式如下:
(一)在SYBASE ASE 10.X和11.X数据库当中创建一个存储过程deptroster,其有一个输入参数@deptno、两个输出参数@totsal 和 @avgsal、一个RETURN值@number_of_emps以及包含职员姓名和工资的SELECT结果集,可见除了输入参数@deptno外,其他均为输出数据,我们需要在PB脚本中获取,具体代码如下:

CREATE PROCEDURE deptroster @deptno integer,

@totsal double precision output,

@avgsal double precision output

AS

DECLARE @number_of_emps integer

SELECT emp_fname, emp_lname, salary FROM employee

WHERE dept_id = @deptno

SELECT @totsal = sum(salary),

@avgsal = avg(salary),

@number_of_emps = COUNT(*) FROM employee

WHERE dept_id = @deptno

RETURN @number_of_emps;
二)PB脚本当中我们需要捕获SELECT结果集、RETURN值和两个输出参数,其输出顺序也是按照“SELECT结果集、RETURN值、输出参数”顺序输出,具体代码如下:

integer fetchcount = 0

long lDeptno, rc

string fname, lname

double dSalary, dTotSal, dAvgSal

lDeptno = 100

//此处声明存储过程名称

DECLARE deptproc PROCEDURE FOR
@rc = dbo.deptroster

@deptno = :lDeptno,

@totsal = 0 output,

@avgsal = 0 output

USING SQLCA;

//此处开始执行存储过程

EXECUTE deptproc;

//判断执行结果

CHOOSE CASE SQLCA.sqlcode
CASE 0

//如果返回0则表示执行成功,至少存在一个SELECT结果集

//借助LOOP循环开始捕获这个SELECT结果集

DO

FETCH deptproc INTO :fname, :lname, :dSalary;

CHOOSE CASE SQLCA.sqlcode

CASE 0

fetchcount++

CASE 100

MessageBox ("End of Result Set", &

string (fetchcount) " rows fetched")

CASE -1

MessageBox ("Fetch Failed", &

//此处关闭存储过程

CLOSE deptproc;

CASE 100

// 如果返回100,则表示没有返回结果集.

// 此时不需要单独执行CLOSE语句.

MessageBox ("Execute Successful", "No result set")

CASE ELSE

//其他情况则表示存储过程执行失败,提示用户即可

MessageBox ("Execute Failed", &

string (SQLCA.sqldbcode) " = " &

⑺ 如何获取存储过程返回值

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

⑻ 取一个SQL存储过程的返回值

当@UserID存在返回JID,否则返回-1,--存储过程Create Procere _GetUserJID(@UserID Varchar(128),@Rst Int Out)
As
Begin
Select @Rst=JID From TB_USer Where StrUserID=@UserID
If(Isnull(@Rst,0)=0)
Set @UserID=-1
Set @Rst=@UserID
End
--调用
Declare @Rst Int
Exec _GetUserJID '1001',@Rst Out
Select @Rst--函数Create Function F_GetUserJID(@UserID Varchar(128))
Returns Int
As
Begin
Declare @Rst Int
Select @Rst=JID From TB_USer Where StrUserID=@UserID
If @Rst Is Null
Set @Rst=-1
Return @Rst
End --调用Select dbo.F_GetUserJID('1001')

⑼ SQL中存储过程参数传递有哪几种方法如何获取存储过程的返回值

参数传递?
参数有in参数、out参数、in out参数
变量可用set和select赋值

获取返回值只需设置变量、到时输出就行

单行数据定义固定变量数、
如果结果是数据集、要用游标cursor

热点内容
定增算法 发布:2024-12-27 04:42:55 浏览:840
淘宝网导航如何设置密码 发布:2024-12-27 04:42:12 浏览:733
世界的万人号的密码是多少 发布:2024-12-27 04:42:06 浏览:766
服务器地址字段 发布:2024-12-27 04:40:44 浏览:894
皓影四驱尊贵版有什么配置 发布:2024-12-27 04:39:53 浏览:690
支付网关源码 发布:2024-12-27 04:38:33 浏览:461
qq密码设置成什么好听 发布:2024-12-27 04:29:59 浏览:435
安卓怎么录制王者荣耀视频有自己的声音 发布:2024-12-27 04:29:55 浏览:594
超闪存储卡 发布:2024-12-27 04:27:44 浏览:614
iu003的解压密码 发布:2024-12-27 04:19:54 浏览:928