0
CREATE OR REPLACE FUNCTION func
RETURN varchar2 AS
myvar INT;
BEGIN
select 1 into myvar from dual where 1=2;
IF myvar IS NULL THEN
return 'n';
ELSE
return 'y';
END IF;
END;
SELECT func() FROM DUAL;
为什么此函数返回NULL
而不是字符串“n”,则检查变量为空?如果条件为
因为you're得到一个异常的'no_data_found'('插入into'这里不会得到任何数据,这将引发异常),并就好像没有发生回报=>'null'作为回报 – SomeJavaGuy
SomeJavaGuy搞定了。 PL/SQL中的SELECT ... INTO ...语句必须返回一行,否则会引发异常:如果不返回行,则返回“NO_DATA_FOUND”,返回两行或多行则返回“TOO_MANY_ROWS”。 –