Опитайте:
begin
for emp_complex_rec in (select e.fname,
d.dlocation
from employee e
INNER JOIN dept_location d
ON (e.dno = d.dnumber))
loop
dbms_output.put_line('The employee id is: ' ||
emp_complex_rec.rname ||
' and the employee''s location is ' ||
emp_complex_rec.rlocation);
end loop;
end;
Проблемът с оригиналния код беше, че дефиницията на emp_complex_rec
като тип се сблъскваше с дефиницията на emp_complex_rec
като променлива за цикъл на курсора. Изричната дефиниция на курсора също не е необходима - IMO поставя SELECT
в FOR
цикълът е по-лесен и по-ясен.
Споделяйте и се наслаждавайте.