У меня проблема с использованием курсора в блоке pl/sql. У меня есть таблица под названием Angajati(employees)
и мне нужно, чтобы отобразить список всех сотрудников из каждого Отделения, например:Pl/Sql с использованием курсоров, имеющих проблемы
Dep 10:
John Smith
King Steven
Dep 20:
Henry King
William
...
Когда я пытаюсь сделать это, я получил сообщение об ошибке, как ORA-06502: PL/SQL: numeric or value error: number precision too large
или мой сценарий не показывает ничего. Это мой код:
declare
dep_min angajati.id_departament %type;
dep_max angajati.id_departament %type;
id_min angajati.id_angajat %type;
id_max angajati.id_angajat %type;
i angajati.id_angajat %type;
cursor c is select nume, prenume, id_departament, id_angajat from angajati where id_angajat=i;
r c%rowtype;
begin
select min(id_departament), max(id_departament) into dep_min, dep_max from angajati;
select min(id_angajat), max(id_angajat) into id_min, id_max from angajati;
open c;
loop
dbms_output.put_line('...');
dbms_output.put_line('Departamentul ' || dep_min);
for i in id_min..id_max
loop
fetch c into r;
if(r.id_departament=dep_min) then
dbms_output.put_line(r.nume || ' ' || r.prenume);
else null;
end if;
exit when id_min>id_max;
end loop;
dep_min:=dep_min+10;
end loop;
close c;
end;
/
Показать вашу схему для таблицы 'angajati (сотрудники)' –