我有一个问题,我无法弄明白 . 表明....
第28行出错:PLS-00103:遇到以下其中一项时遇到符号“文件结束”:begin end function pragma procedure CREATE OR REPLACE PACKAGE BODY check_emp_pkg IS PROCEDURE chk_hiredate(p_date IN employees.hire_date%TYPE)
这是我的代码如下:
CREATE OR REPLACE PACKAGE BODY check_emp_pkg
IS
PROCEDURE chk_hiredate
(p_date IN employees.hire_date%TYPE)
IS BEGIN
IF MONTHS_BETWEEN(SYSDATE, p_date) > g_max_length_of_service * 12 THEN
RAISE_APPLICATION_ERROR(-20200, 'Invalid Hiredate');
END IF;
END chk_hiredate;
PROCEDURE chk_dept_mgr
(p_empid IN employees.employee_id%TYPE,
p_mgr IN employees.manager_id%TYPE)
IS BEGIN
DECLARE
v_mgr_id departments.manager_id%TYPE;
BEGIN
SELECT manager_id INTO v_mgr_id
FROM departments;
IF p_mgr = v_mgr_id THEN
DBMS_OUTPUT.PUT_LINE('Success');
ELSE
RAISE_APPLICATION_ERROR(-20200, 'Manager ID is not a match');
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Manager does not exist');
END chk_dept_mgr;
END check_emp_pkg;
我不知道为什么我得到错误!
1 回答
在第二个过程中有一个额外的
begin
和declare
. 这部分:应该只是:
您可以从缩进中看出您的块已经不对齐 . 你真的需要一个,而不是正确地结束它 . 您可以在
end if
之后添加end
,但该内部块仍然不会添加任何有用的内容 .