CREATE OR REPLACE FUNCTION f2
(v_nume employee.last_name%TYPE DEFAULT 'Andrew')
RETURN NUMBER IS
salariu employee.salary%type;
BEGIN
SELECT salary
INTO salariu
FROM employee
WHERE last_name = v_nume;
RETURN salariu;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20000, 'No employees');
WHEN TOO_MANY_ROWS THEN
RAISE_APPLICATION_ERROR(-20001, 'Many employees');
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20002,'Another error!');
END f2;
SELECT f2 FROM DUAL;
嗨!我该怎么办才能修复?另外,我可以给这个函数一个表参数吗?
您需要先将该函数发送到数据库才能进行编译,具体取决于您的客户端程序,您可能会使用a/
来这样做:
CREATE OR REPLACE FUNCTION f2
(v_nume employee.last_name%TYPE DEFAULT 'Andrew')
RETURN NUMBER IS
salariu employee.salary%type;
BEGIN
SELECT salary
INTO salariu
FROM employee
WHERE last_name = v_nume;
RETURN salariu;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20000, 'No employees');
WHEN TOO_MANY_ROWS THEN
RAISE_APPLICATION_ERROR(-20001, 'Many employees');
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20002,'Another error!');
END f2;
/
然后,您可以使用它:
select f2() from dual;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句