存儲過程返回值接收
『壹』 在sql Server中~如何利用RETURN返回存儲過程的值~~~
從存儲過程返回非表類型的值有二種方法:
1.存儲過程使用return語句返回值.此種情況下,接收該存儲過程值的方法是:
delcare @ReturnValue int /*(與存儲過程return語句返回值的類型相同)*/
exec @ReturnValue = StoredProc /*StoredProc為一個存儲過程*/
2.存儲過程使用OUTPUT輸出參數.此種情況下,直接使用OUTPUT輸出參數即可:
declare @id int
set @id = 1
exec StoreProc @id OUTPUT /*StoredProc為一個存儲過程*/
select @id
『貳』 存儲過程select語句返回的結果如何接收
SET @length=SELECT count(id) FROM Split(@subjectid,',')
改為漏猛乎SELECT @length=count(id) FROM Split(@subjectid,',')
SELECT @article=SELECT a FROM Split(@subjectid,',') WHERE id=@id
改為SELECT @article=a FROM Split(@subjectid,',') WHERE id=@id
SELECT @articlensid=INSERT INTO sourcelib SELECT TITLE FROM sourcelib WHERE NSID =@NSID SELECT @@IDENTITY
改為
INSERT INTO sourcelib SELECT TITLE FROM sourcelib WHERE NSID =@NSID
SELECT @articlensid=@@IDENTITY
你這個基本上都是賦值的錯誤,請知隱參照返悉上面給的修改方法把其他的都修改好後再調試。
『叄』 java 接收存儲過程的return返回值
Connectionconn;
/*省略連接過程*/
CallableStatementstmt=con.prepareCall("{?=callp_函數1('type',1991,?)}");
stmt.registerOutParameter(1,Types.INTEGER);
stmt.registerOutParameter(2,Types.DECIMAL);
ResultSetrs=stmt.executeQuery();
while(rs.next()){
System.out.println(rs.getString(1));
}
System.out.println(stmt.getInt(1));
System.out.println(stmt.getDouble(2));
/*注意SQL語句的序號是從1個開始。*/
注冊返回參數
第一晌基余個問號就是整個執行結果的返回值。
第二個問號宴滾對應的是output參數的返回結果。
我自己設置的結果是返回值是int類型,output的參數的decimal(15,2),
然後取出鋒羨來是按照int和double來取出。
『肆』 如何獲取存儲過程返回值
1.OUPUT參數返回值
CREATE PROCEDURE [dbo].[nb_order_insert](
@o_buyerid int ,
@o_id bigint OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
BEGIN
INSERT INTO [Order](o_buyerid )
VALUES (@o_buyerid )
SET @o_id = @@IDENTITY
END
END
2.存儲過程中獲得方法:
DECLARE @o_buyerid int
DECLARE @o_id bigint
DECLARE @result bit
EXEC @result = [nb_order_insert] @o_buyerid ,o_id output
3.SELECT 數據集返回值
CREATE PROCEDURE [dbo].[nb_order_select](
@o_id int
)
AS
BEGIN
SET NOCOUNT ON;
SELECT o_id,o_buyerid FROM [Order]
WHERE o_id = @o_id
GO
『伍』 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
『陸』 如何調用存儲過程的返回值
存儲過程
中的第一個參數
@title
將接收由調用程序指定的輸入值,而第二個參數
@ytd_sales
將向調用程序返回該值。SELECT
語句使用
@title
參數以獲得正確的
ytd_sales
值,並將該值賦予
@ytd_sales
輸出參數。
CREATE
PROCEDURE
get_sales_for
『柒』 在 sql select 語句中 如何獲取 存儲過程的返回值
SQL Server中存儲過程的返回值不是通過return語句返回的(return語句是在用戶自定義函數中使用的),而是通過存儲過程的參數來返回,在定義存儲過程的參數時使用關鍵字output來指定此參數是返回值。
而在調用存儲過程時,也必須使用關鍵字給接收返回值的變數,這樣才能在調用時獲得存儲過程的返回值。
示例:
createproceredbo.pr_add@aint,@bint,@cintoutput
as
set@c=@a+@b
go
調用:
declare@vint
executedbo.pr_add1,2,@voutput
select@v
『捌』 C#如何接收存儲過程的返回結果集
請看下面加粗代碼 public static string[] GetUserInformation() //獲得用戶詳細信息 { DataSet ds = new DataSet(); SqlDataAdapter adapter = new SqlDataAdapter(); string[] InForMation = new string[3]; using (SqlConnection conn = new SqlConnection(getTools.ConnString)) { conn.Open(); using (SqlCommand cmd = new SqlCommand("prou_iflogin", conn)) { cmd.CommandType = CommandType.StoredProcere; cmd.Parameters.Add("@userid", SqlDbType.VarChar); cmd.Parameters["@userid"].Value = user.Userid; cmd.ExecuteNonQuery(); adapter.SelectCommand = cmd; if (ds != null) { adapter.Fill(ds, "userinfo"); } //這里怎麼把ds的數據讀取出來放到數組裡面呢? //下面的就是放到數組里的代碼 DataTable dt = ds.Table[0]; string[] strmds = new string[dt.Rows.Count]; string[] strtime = new string[dt.Rows.Count]; string[] username = new string[dt.Rows.Count]; for(int i=0;i<dt.Rows.Count;i++) { strmds[i] = dt.Rows[i][0].ToString(); strtime[i] = dt.Rows[i][1].ToString(); username[i] = dt.Rows[i][2].ToString(); } } return InForMation; } }