Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Erro Oracle PLS-00323:subprograma ou cursor é declarado em uma especificação de pacote e deve ser definido no corpo do pacote


Suas definições de procedimento de cabeçalho e corpo não correspondem

No cabeçalho, você tem:
PROCEDURE get_films(fname VARCHAR2);

Enquanto no corpo:
PROCEDURE get_films(fname IN film.title%type, 
   r_date OUT film.release_date%type, dur OUT film.duration%type)

Você provavelmente só precisa atualizar a definição do cabeçalho com os dois parâmetros OUT adicionais?

Para resumir
  • Certifique-se de que a definição do cabeçalho corresponda a todos os parâmetros da implementação do corpo (número de parâmetros, nomes dos parâmetros, ordem dos parâmetros e tipos de parâmetros)
  • De acordo com o comentário de Alex, não misture e combine o tipo personalizado (film.title%type ) com o tipo base (VARCHAR2 ). Escolha um ou outro.