2016-07-24 173 views
-1

我想用一个光标编写一个PL/SQL查询,它将检索所有雇员的招聘日期,并通过计算他们的加薪来标记那些已经在那里超过5年的人(比方说10%),并在他们的名字旁边“举起”。比较日期到今天的日期

我把这个查询放在一起,但我很难纠正我得到的错误。

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

看看[在同一家庭作业的其他职位](http://stackoverflow.com/questions/38409748/using-cursor-to-find-all-employees-谁,需要到有,他们的薪金,更新/ 38410292#38410292)。 –

回答

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列