dbms_output.put_line
is niet overbelast om een boolean argument te accepteren. Je kunt zoiets doen als
dbms_output.put_line( case when exist = true
then 'true'
else 'false'
end );
om de boolean om te zetten in een tekenreeks die u vervolgens kunt doorgeven aan dbms_output
.
De ORA-01422-fout is een volledig apart probleem. De functie checkEmpNo
bevat de SELECT INTO
verklaring
SELECT emp_id
INTO emp_number
FROM emp;
EEN SELECT INTO
genereert een fout als de query iets anders retourneert dan 1 rij. In dit geval, als er meerdere rijen zijn in de emp
tabel krijgt u een foutmelding. Ik vermoed dat je zou willen dat je functie zoiets doet als
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;