2013-10-13 45 views
1

我有一個存儲過程,其中IN參數爲INT調用存儲過程時爲整數IN參數爲空

有時,當我不需要這個IN參數的值時,我需要通過null。但我得到的錯誤/* SQL Error (1366): Incorrect integer value: 'NULL' for column 'xStatus' at row 2 */如何傳遞NULL時它是一個INT。

CREATE DEFINER=`root`@`localhost` FUNCTION `links`(`xStatus` INT(2)) 
    RETURNS varchar(2400) 
    LANGUAGE SQL 
    NOT DETERMINISTIC 
    CONTAINS SQL 
    SQL SECURITY DEFINER 
    COMMENT '' 
BEGIN 

DECLARE output varchar(50); 

CASE xStatus WHEN NULL THEN 
SET output = 'Is Null'; 
ELSE 
SET output = 'Was not Null'; 
END CASE; 

return output; 
END 

回答

1

這裏是你可以這樣寫一個方法:

Create Function links(xstatus int) returns varchar(2400) language sql 
begin 
    return 
    case 
     when xstatus is null then 'is null' 
     else 'is not null' 
    end; 
end; 

SQL Fiddle

相關問題