dbms_output.put_line
no está sobrecargado para aceptar un argumento booleano. Puedes hacer algo como
dbms_output.put_line( case when exist = true
then 'true'
else 'false'
end );
para convertir el booleano en una cadena que luego puede pasar a dbms_output
.
El error ORA-01422 es un problema completamente diferente. La función checkEmpNo
incluye el SELECT INTO
declaración
SELECT emp_id
INTO emp_number
FROM emp;
A SELECT INTO
generará un error si la consulta devuelve algo que no sea 1 fila. En este caso, si hay varias filas en el emp
tabla, obtendrá un error. Supongo que le gustaría que su función hiciera algo como
CREATE OR REPLACE FUNCTION checkEmpNo(p_eno number)
RETURN boolean
IS
l_count number;
BEGIN
SELECT count(*)
INTO l_count
FROM emp
WHERE emp_id = p_eno;
IF( l_count = 0 )
THEN
RETURN false;
ELSE
RETURN true;
END IF;
END checkEmpNo;