[英]MySQL stored procedure with OUT parameter
使用out參數時,我一直得到null值。
CREATE PROCEDURE `getTotalPoints`(IN `uEmail` VARCHAR(255), OUT `iTotal` DECIMAL(5,2) UNSIGNED)
begin
select
coalesce(
coalesce(sum(points_earned),0) -
coalesce(sum(points_lost),0) +
coalesce(sum(points_taken),0) -
coalesce(sum(points_traded),0),0)
from user_activities
where user_email=@uEmail into @iTotal;
end
我知道select語句可以正常工作,因為沒有out參數,結果是0.00。
我敢肯定這很簡單,但是我研究和嘗試的一切都導致了相同的NULL返回值。
刪除變量引用上的“ @
”符號。
“ @uEmail
”和“ @iTotal
”是對用戶定義的變量的引用,而不是過程參數。
您想將過程參數引用為“ uEmail
”和“ iTotal
”,而不使用“ @
”。
或者 ,如果您對用戶定義的變量進行了必要的賦值,則可能使您的語句生效,在過程主體中類似以下內容:
-- set user-defined variable to value from procedure argument
SET @uEmail = uEmail;
-- statement references user-defined variables
SELECT ...@uEmail ... INTO @iTotal;
-- set procedure OUT argument from user-defined variable
SET iTotal = @iTotal;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.