dbms_output.put_line
tidak kelebihan beban untuk menerima argumen boolean. Anda dapat melakukan sesuatu seperti
dbms_output.put_line( case when exist = true
then 'true'
else 'false'
end );
untuk mengonversi boolean menjadi string yang kemudian dapat Anda teruskan ke dbms_output
.
Kesalahan ORA-01422 adalah masalah yang sepenuhnya terpisah. Fungsi checkEmpNo
termasuk SELECT INTO
pernyataan
SELECT emp_id
INTO emp_number
FROM emp;
Sebuah SELECT INTO
akan menghasilkan kesalahan jika kueri mengembalikan apa pun selain 1 baris. Dalam hal ini, jika ada beberapa baris di emp
tabel, Anda akan mendapatkan kesalahan. Dugaan saya adalah Anda ingin fungsi Anda melakukan sesuatu seperti
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;