2016-07-24 171 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列