Debido viejos errores de alguien siempre son una novedad para mí, voy a añadir mis 3 centavos:
alguien ha eliminado sus especificaciones, pero todavía tenía el cuerpo (No, no sé cómo) y "didn No quiero tener que escribir todo eso nuevamente ".
Así que les mostraron cómo generar la especificación del cuerpo:
- Copiar el cuerpo en una hoja de cálculo.
- Inserta un encabezado vacío sobre el cuerpo con el nombre del paquete.
- Compilar.
- [Si obtiene un error o no,] Haga clic derecho en el cuerpo del paquete en el árbol de paquetes, y seleccione "Sincronizar la especificación y el cuerpo".
- Seleccione qué objetos exponer en la especificación y haga clic en Aceptar.
- "magia sucede"
Sólo la magia no sucedió - y todo se volvió de color rojo ... con PLS-00323 errores.
SQL Developer llena las especificaciones del paquete tirando del procedimiento y los encabezados de funciones del código en sí, por lo que no debería preocuparse por las cosas. Presenta una lista de objetos para agregar al paquete/especificación, y usted elige cuáles agregar.
Seleccionamos los procedimientos y funciones correctos, pero se compilaron con errores. De nuevo. Y otra vez.
Resulta que las funciones que arrojaron errores se definieron en el cuerpo del paquete con DETERMINISTIC - cuando el editor de SQL Dev hizo la sincronización, omitió la palabra. Eso es bastante significativo.
De todos modos, revisado, pegado DETERMINISTIC en las funciones específicas antes del punto y coma, guardado (recompilado), y luego fue mágico de nuevo.
Es de esperar que SQL Developer haga el trabajo completo, en lugar de un trabajo medio ...
Puede ser demasiado obvio, pero compruebe dos veces si el nombre del procedimiento es exactamente el mismo, así como todos los parámetros que recibe. –
Entendido, solo falta una letra del nombre de un parámetro. – Amit
mismo error aquí alrededor de media hora tratando con eso. muchas gracias. – BlaShadow