sql >> Base de Datos >  >> RDS >> Oracle

Error de Oracle PLS-00323:el subprograma o cursor se declara en una especificación de paquete y debe definirse en el cuerpo del paquete

Las definiciones de los procedimientos de encabezado y cuerpo no coinciden

En el encabezado, tienes:

PROCEDURE get_films(fname VARCHAR2);

Mientras que en el cuerpo:

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

¿Probablemente solo necesite actualizar la definición del encabezado con los dos parámetros OUT adicionales?

Para resumir

  • Asegúrese de que la definición del encabezado coincida con todos los parámetros de la implementación del cuerpo (número de parámetros, nombres de parámetros, orden de los parámetros y tipos de parámetros)
  • Según el comentario de Alex, no mezcle ni combine el tipo personalizado (film.title%type ) con el tipo base (VARCHAR2 ). Elige uno u otro.