存儲過程返回參數
A. oracle 存儲過程中怎麼返回參數
存儲過程定義參數時,變數名的後面加上關鍵字OUT,在存儲過程執行中對這個參數進行賦值。等存儲過程執行結束之後,可以在sqlplus中獲得這個參數返回的值。
B. 存儲過程返回參數一般有什麼用
執行查詢命令和批量更新命令以及統計結果,可以使用返回參數查看操作了多少條記錄或具體統計值有多少。
C. SQL 取存儲過程的返回值
存儲過程應該有返回值的,
問題應該出現在你vb6的調用語句中(第二個參數是輸出類型的參數,
是否有正確設置).
你可以在查詢分析器中執行此存儲過程,
看看返回的結果.
還有,
此存儲過程中的select語句最好加上top
1限制,
因為你只要判斷是否能選到結果而已:
select
top
1
*
from
tb_package
where
packagenumber=@a
D. 怎麼從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
E. 存儲過程返回值
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欄位了
F. delphi客戶端調用存儲過程返回參數,請問怎麼解決
有位同夥告訴我一種辦法,但答復我不太明白,我的目標是如許的,三層構造下客戶端給存儲過程幾個參數,返回幾個參數答復如下:我有一個經驗,後台資料庫是SqlServer2000:
1.存儲過程不返回記錄集,只返回參數。
TClientDataSet.CommandText:=
'
Declare
@OutputData
int
Excute
StoredProc1
@OutputData
Output
如許就可以返回輸出的參數了。
以上調用輸出可能有錯,但語句是對的,你式一下。
2.存儲過程要返回記錄集,也要返回參數。
你只好再中心層寫辦法調用了。
返回參數值:=
clientdataset.fieldbyname('outputdata').asstring;
在delphi中該怎麼定義參數,怎麼處理,還請明示1。
這個commandtext到底該怎麼寫?Excute
StoredProc1
@OutputData
Output
中的outputdate在存儲過程中是否應當定義?2。Select
@OutputData
起什麼感化?3。多參數怎麼解決,參數名稱是否和存儲過程中應當一樣?4。open打開到底返回的是記載照樣參數?分別怎麼處理?
Select
@OutputData
'
你要用open打開,返回是一筆記錄。如不雅存儲過程名稱位disp1
傳入參數在存儲過程平分別為@time1,@time2
傳出參數位@get1,@get2均為float
G. c#如何取得存儲過程的返回值
比如你的存儲過程返回參數變數名字為@res,而且sqlcommand cmd已經聲明定義;
那麼在執行sql語句之前
應該:
cmd.Parameters["@res"].Direction = ParameterDirection.InputOutput;
然後執行sql語句;
執行完畢再:
int res=(int)cmd.Parameters["@res"].Value;
結束,res就是存儲過程的返回值了
H. 如何獲取存儲過程返回值
樓主會在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();
就可以了
I. 如何調用存儲過程的返回值
存儲過程
中的第一個參數
@title
將接收由調用程序指定的輸入值,而第二個參數
@ytd_sales
將向調用程序返回該值。SELECT
語句使用
@title
參數以獲得正確的
ytd_sales
值,並將該值賦予
@ytd_sales
輸出參數。
CREATE
PROCEDURE
get_sales_for
J. 如何 mysql 存儲過程返回值
mysql中要獲得存儲過程的返回值,可以增加一個out參數,用來返回。
mysql中存儲過程的例子:
CREATE PROCEDURE addvoucher (
IN userid INT,
IN voucherid INT,
OUT result INT
)
BEGIN
SELECT
@endate_a := endate ,@batch_a := batch ,@c_count_a := c_count,
@isdead_a := isdead
FROM
t_voucher
WHERE
id = voucherid;
SET autocommit = 0;
IF EXISTS (
SELECT
*
FROM
t_user_voucher tuv,
t_voucher tv
WHERE
tv.id = tuv.voucherid
AND tv.batch =@batch_a
) THEN
SET result = 1;-- 已存在
SELECT
result;
ELSE
IF @c_count_a > 0 THEN
IF (
TO_DAYS(@endate_a) - TO_DAYS(NOW())
) > 0 THEN
IF @isdead_a = 1 THEN
INSERT INTO t_user_voucher (userid, voucherid, isdead)
VALUES
(userid, voucherid, 1);
UPDATE t_voucher SET c_count = c_count-1 where id = voucherid;
SET result = 0;-- 成功
END;