dbms_output.put_line ist nicht überladen, um ein boolesches Argument zu akzeptieren. Sie können so etwas tun wie
dbms_output.put_line( case when exist = true
then 'true'
else 'false'
end );
um den booleschen Wert in einen String umzuwandeln, den Sie dann an dbms_output übergeben können .
Der Fehler ORA-01422 ist ein völlig separates Problem. Die Funktion checkEmpNo enthält den SELECT INTO Erklärung
SELECT emp_id
INTO emp_number
FROM emp;
A SELECT INTO generiert einen Fehler, wenn die Abfrage etwas anderes als 1 Zeile zurückgibt. In diesem Fall, wenn es mehrere Zeilen in emp gibt Tabelle erhalten Sie eine Fehlermeldung. Ich vermute, Sie möchten, dass Ihre Funktion so etwas wie
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;