Cześć mam takie zadanie:
"Zadeklaruj zmienne: v_min, v_max do przechowywania dolnej i górnej granicy zarobków oraz
v_id_od przechowującą identyfikator oddziału, nadaj ostatniej zmiennej wartość 50. Zadeklaruj
kursor do pobierania imienia, nazwiska, pensji pracowników z oddziału o identyfikatorze zapisanym
w zmiennej v_id_od. Napisz pętlę wyświetlającą imiona i nazwiska pracowników, których pensja
mieści się w przedziale wskazanym przez użytkownika (v_min; v_max)."
Rozwiązanie jakie póki co wymyśliłem to:
accept v1 prompt 'Podaj minimalna wartosc: ';
accept v2 prompt 'Podaj max wartość: ';
declare
v_min employees.salary%type:=&v1;
v_max employees.salary%type:=&v2;
v_id_od departments.department_id%type:=50;
Cursor kursor is
select employees.FIRST_NAME, employees.last_name, employees.salary from employees
where department_id=v_id_od;
begin
OPEN kursor;
for employees in reverse v_min..v_max loop
dbms_output.put_line(first_name||' '||last_name);
end loop;
close kursor;
end;
/
Niestety nie działa poprawnie błąd jaki otrzymałem to:
Error report -
ORA-06550: line 11, column 30:
PLS-00201: identifier 'FIRST_NAME' must be declared
ORA-06550: line 11, column 9:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
Co robię nie tak jak trzeba? po end na końcu i przed znakiem / podkreśla mi się również na czerwono jakby tam czegoś brakowało.