sql >> Database teknologi >  >> RDS >> Oracle

PLS-00302:komponent skal erklæres - Kan ikke løses

Prøv:

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;

Problemet med den originale kode var, at definitionen af ​​emp_complex_rec som en type kolliderede med definitionen af ​​emp_complex_rec som en cursor loop variabel. Den eksplicitte markørdefinition er heller ikke nødvendig - IMO sætter SELECT i FOR loop er nemmere og tydeligere.

Del og nyd.



  1. flere automatiske stigninger i mysql

  2. MariaDB JSON_LENGTH() Forklaret

  3. Oprettelse af MySQL View ved hjælp af UNION

  4. Returner en lagret procedure ud af cursorvariabel i cx_oracle