比较日期到今天的日期

时间:2016-07-24 05:57:02

标签: plsql cursor

我正在尝试使用游标编写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行的行,而且我还得到其他非特定的错误。 欢迎任何帮助。

谢谢

1 个答案:

答案 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列