Так работать не будет;DBMS_OUTPUT.PUT_LINE
ожидает строки , а не логический тип данных, поэтому вы должны "преобразовать" значение переменной логического типа в строку - например, используя CASE
(как я сделал).Посмотрите на этот пример:
SQL> create or replace function plsql_function return boolean as
2 begin
3 return false;
4 end;
5 /
Function created.
SQL> set serveroutput on
SQL> declare
2 v1 boolean;
3 begin
4 v1 := plsql_function;
5 dbms_output.put_line('result ' || case when v1 then 'true' else 'false' end);
6 end;
7 /
result false
PL/SQL procedure successfully completed.
SQL>