我正在尝试使用游标编写PL / SQL查询,该游标将检索所有雇用日期的员工,并通过计算他们的加薪(比如说10%)标记那些已经在那里工作超过5年的人员在他们的名字旁边“举起”。
我把这个问题放在一起,但我很难纠正我得到的错误。
declare
cursor c_emp_raise is
select last_name, salary, hire_date
from employees
where hire_date+1825 < trunc(sysdate);
v_l_name employees.last_name%type;
v_sal employees.salary%type;
v_h_date emplyees.hire_date%TYPE;
begin
open c_emp_raise;
loop
fetch c_emp_raise into v_l_name, v_sal, v_h_date;
exit when c_emp_raise%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_l_name ||' '||v_sal||' '||v_h_date
||' Due for 10% Raise '||v_sal*0.1);
END LOOP;
END;
我得到的错误是指我没有第13行第52行的行,而且我还得到其他非特定的错误。 欢迎任何帮助。
谢谢
答案 0 :(得分:1)
你拼错了员工:
v_h_date emplyees.hire_date%TYPE;
当你提问时显示错误堆栈:
ORA-06550: Zeile 7, Spalte 10:
PLS-00201: Bezeichner 'EMPLYEES.HIRE_DATE' muss deklariert werden
ORA-06550: Zeile 7, Spalte 10:
PL/SQL: Item ignored
ORA-06550: Zeile 11, Spalte 43:
PLS-00320: Die Typ-Deklaration dieses Ausdruckes ist unvollständig oder fehlerhaft
ORA-06550: Zeile 11, Spalte 3:
PL/SQL: SQL Statement ignored
ORA-06550: Zeile 13, Spalte 52:
PLS-00320: Die Typ-Deklaration dieses Ausdruckes ist unvollständig oder fehlerhaft
ORA-06550: Zeile 13, Spalte 3:
PL/SQL: Statement ignored
然后逐一纠正错误。第一个是第7行第10列