Ich versuche, eine PL/SQL-Abfrage mit einem Cursor zu schreiben, die alle Mitarbeiter Einstellungsdatum abrufen und diejenigen, die seit mehr als 5 Jahren dort gewesen sind, indem ihre Raise berechnet haben sagen wir 10%) und haben "Raise" direkt neben ihren Namen.Vergleichen von Daten mit dem heutigen Datum
Ich stelle diese Abfrage zusammen, aber ich habe eine harte Zeit, die Fehler zu korrigieren, die ich bekomme.
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;
Der Fehler, ich bezieht sich auf eine Linie zu bekommen, die ich Zeile 13 Spalte 52 nicht haben, und ich habe auch andere Fehler auftreten, die nicht spezifisch sind. Jede Hilfe ist willkommen.
Danke
Werfen Sie einen Blick auf [andere Beiträge zur gleichen Hausaufgabe] (http://stackoverflow.com/questions/38409748/using-cursor-to-find-all-employee-) Wer-müssen-haben-ihr-Gehalt-aktualisiert/38410292 # 38410292). –