Oracle
 sql >> Datenbank >  >> RDS >> Oracle

PLS-00302:Komponente muss deklariert werden – kann nicht aufgelöst werden

Versuchen Sie:

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;

Das Problem mit dem ursprünglichen Code war, dass die Definition von emp_complex_rec da ein Typ mit der Definition von emp_complex_rec kollidierte als Cursor-Loop-Variable. Die explizite Cursor-Definition wird auch nicht benötigt - IMO setzt den SELECT im FOR Schleife ist einfacher und klarer.

Teilen und genießen.