楼上说的不错,boolean类型Oracle不支持写成 if a>b then return 1; end if;
谁说不可以,只是不能出现查询语句上. create or replace function test(a number, b number) return boolean as begin if a>b then return true; else return false; end if; end; /SQL> set serveroutput on SQL> declare 2 a boolean; 3 begin 4 a:=test(5,4); 5 if a then 6 dbms_output.put_line('正确'); 7 end if; 8 end; 9 / 正确PL/SQL procedure successfully completed
in pl/sql we can use boolean, but if we define column datatype,can not do this.
if a>b then
return 1;
end if;
create or replace function test(a number, b number)
return boolean
as
begin
if a>b then
return true;
else
return false;
end if;
end;
/SQL> set serveroutput on
SQL> declare
2 a boolean;
3 begin
4 a:=test(5,4);
5 if a then
6 dbms_output.put_line('正确');
7 end if;
8 end;
9 /
正确PL/SQL procedure successfully completed
but if we define column datatype,can not do this.
而你的返回的值不是:true 或false:而是return a>b;类型错误