2016-07-24 17 views
-1

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

+0

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). –

Antwort

1

Sie falsch geschriebene Mitarbeiter:

v_h_date emplyees.hire_date%TYPE; 

Wenn Sie eine Frage, um die Fehler-Stack zeigen fragen:

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 

Und dann die Fehler nacheinander zu korrigieren. Der erste ist in Zeile 7 Spalte 10