我有一个存储过程,其中IN
参数为INT
。
有时,当我不需要此IN
参数的值时,我需要传递null
。但是我收到错误/* SQL Error (1366): Incorrect integer value: 'NULL' for column 'xStatus' at row 2 */
如果是INT,我怎么能传递NULL。
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
答案 0 :(得分: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 强>