我是新來的存儲過程,並沒有使用它們在我的項目以前。我創建了我的第一個過程,但它沒有返回預期的結果。存儲過程返回NULLS
的步驟創建如下 -
CREATE PROCEDURE GetRetirementDetails @DOB DATE, @Gender VARCHAR(10)
AS
DECLARE @DateRet DATE,
@AgeRet DECIMAL(18,2)
SELECT @DateRet = [DateRet], @AgeRet = [AgeRet]
FROM [State]
WHERE [From] <= @DOB
AND [To] >= @DOB
AND (Gender = @Gender OR Gender = 'Both')
我執行的步驟,使用下面的語句 -
DECLARE @DateRet DATE,
@AgeRet DECIMAL(18,2),
@DOB DATE,
@Gender VARCHAR(10)
SET @DOB = '1975-10-10'
SET @Gender = 'Male'
EXECUTE GetRetirementDetails @DOB, @Gender
SELECT @DateRet, @AgeRet
返回的結果是NULL,NULL
然而,當我運行以下語句,這是使用手動輸入參數的過程,我會得到所需的結果。
SELECT [DateRet], [AgeRet]
FROM [State]
WHERE [From] <= '1975-10-10'
AND [To] >= '1975-10-10'
AND (Gender = 'Male' OR Gender = 'Both')
需要的輸出爲NULL,67.00
我敢肯定,我的錯誤是基本的,但我掙扎,看到它被賦予我以前沒有使用存儲過程是什麼。非常感激任何的幫助。
標記您正在使用的dbms。該代碼是特定於產品的。 – jarlh
您正在設置過程範圍內的變量,而不是調用腳本的範圍。所以您選擇的變量從未設置過。 – HoneyBadger