尝试从函数
返回值create or replace function compairenumber(num1 in number,num2 in number)
return boolean is
begin
if num1 < num2 then
return true;
else
return false;
end if;
end;
当我提出查询时 从双重中选择compairenumber(5,10) 它没有回归真或假。
答案 0 :(得分:8)
布尔值只能用于其他PL / SQL代码,Oracle SQL中的不是。如果您想要一个函数,其返回值在select ... from dual
中可用,那么您需要定义函数以分别返回值varchar2
和'true'
的{{1}}(或'false'
和'T'
,或返回数字,值为1和0)。
令人遗憾的是,Oracle SQL不支持布尔数据类型(尽管编程语言为PL / SQL)。
答案 1 :(得分:0)
使用return varchar2
create or replace function compairenumber(num1 in number, num2 in number)
return varchar2 is
begin
if num1 < num2 then
return 'TRUE';
else
return 'FALSE';
end if;
end;
select CASE
WHEN compairenumber(5, 10) = 'TRUE' THEN
'OK'
ELSE
'NOT'
END
from dual