Oracle
 sql >> Base de données >  >> RDS >> Oracle

PLS-00302 :le composant doit être déclaré - Impossible de résoudre

Essayez :

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;

Le problème avec le code d'origine était que la définition de emp_complex_rec car un type était en collision avec la définition de emp_complex_rec en tant que variable de boucle de curseur. La définition explicite du curseur n'est pas nécessaire non plus - IMO mettant le SELECT dans le FOR boucle est plus simple et plus claire.

Partagez et profitez.