當前位置:首頁 » 服務存儲 » 存儲過程中的返回值怎麼獲取
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

存儲過程中的返回值怎麼獲取

發布時間: 2022-04-24 04:41:43

1. sqlServer如何獲取存儲過程的返回值

存儲過程可以返回一個整數值,方式是:
exec @r = myproc;
或者通過output.參數獲得返回值,這樣的返回值不限類型;
有過程mypro

2. 獲取存儲過程返回值

這個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方面的能幫到你。

3. 怎麼從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

4. 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

5. 如何獲取存儲過程的返回值和輸出值

沒有見過調用存儲過程象調用游標一樣的代碼,一般我是這樣聲明的:DECLARE Lproc_1 PROCEDURE FOR
proc_1 @as_int = :li_int OUTPUT ;
execute Lproc_cw_gz_personal_cal ;
變數li_int即為返回的值。如果要同時返回多行的數據,可以使用DATAWINDOW或者是DATASTORE來得到結果集:
string ls_sql_syntax , ls_syntax
string ls_error
integer li_ini

6. 如何調用存儲過程的返回值

存儲過程
中的第一個參數
@title
將接收由調用程序指定的輸入值,而第二個參數
@ytd_sales
將向調用程序返回該值。SELECT
語句使用
@title
參數以獲得正確的
ytd_sales
值,並將該值賦予
@ytd_sales
輸出參數。
CREATE
PROCEDURE
get_sales_for

7. c#如何取得存儲過程的返回值

比如你的存儲過程返回參數變數名字為@res,而且sqlcommand cmd已經聲明定義;
那麼在執行sql語句之前
應該:
cmd.Parameters["@res"].Direction = ParameterDirection.InputOutput;
然後執行sql語句;
執行完畢再:
int res=(int)cmd.Parameters["@res"].Value;
結束,res就是存儲過程的返回值了

8. 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

9. 如何獲取存儲過程返回值

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