Essayer de retourner la valeur de la fonction
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;
quand je donne une requête sélectionnez compairenumber (5,10) à partir de dual sa ne retourne pas true ou false.
Les valeurs booléennes ne peuvent être utilisées que dans un autre code PL/SQL, pas dans Oracle SQL. Si vous souhaitez une fonction dont la valeur de retour est disponible dans un select ... from dual
, vous devez définir la fonction pour renvoyer varchar2
avec les valeurs de retour 'true'
et 'false'
respectivement (ou 'T'
et 'F'
, ou le numéro de retour avec les valeurs 1 et 0).
Aussi triste que cela puisse être, Oracle SQL ne prend pas en charge le type de données booléen (contrairement au langage de programmation PL/SQL).
utilisez 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