ash*_*ish 7 oracle boolean function
试图从函数返回值
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;
Run Code Online (Sandbox Code Playgroud)
当我给出查询选择来自双重的对象数(5,10)时,它不返回true或false.
布尔值只能用于其他PL/SQL代码,而不能用于Oracle SQL.如果你想它的返回值是一个能够使用的功能select ... from dual,那么你需要定义函数返回varchar2与返回值'true'和'false'分别(或'T'和'F',或回数,值为1和0).
令人遗憾的是,Oracle SQL不支持布尔数据类型(尽管编程语言为PL/SQL).
小智 5
使用返回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
Run Code Online (Sandbox Code Playgroud)