Oracle - Ayuda con funcion y package

 
Vista:

Ayuda con funcion y package

Publicado por masterice (1 intervención) el 21/04/2010 14:50:07
Hola a todos!!

Uso el PL/SQL Developer para gestionar mi base de datos oracle. El caso es que estoy empezando con los packages y las funciones en ORACLE pero tengo el siguiente problema.

He creado una funcion llamada NUEVA dentro de la carpeta "Functions", la he probado haciendole un test y funciona sin problemas. Lo siguiente que quiero es añadir esta funcion a un Package llamado CALCULOS ya existente, por lo que he editado el package y le he añadido los datos de la funcion de la siguiente manera:

CREATE OR REPLACE PACKAGE CALCULOS IS

FUNCTION NUEVA (CODIGO IN NUMBER, FECHA IN DATE)
RETURN NUMBER;
PRAGMA RESTRICT_REFERENCES (NUEVA, WNDS, WNPS);

FUNCTION EXISTENTE (CODIGO IN NUMBER ,CODIGO2 IN VARCHAR2 ,FECHA IN DATE )
RETURN NUMBER;
PRAGMA RESTRICT_REFERENCES (EXISTENTE, WNPS, WNDS);

END CALCULOS;

He compilado y no muestra ningún error pero cuando intento hacerle un test a la funcion desde el package me dice que "ORA-06512: NO SE HA ENCONTRADO LA UNIDAD DE PROGRAMA LLAMADA EN LINEA 3":

begin
-- Call the function
:result := calculos.nueva(codigo => :codigo,
fecha => :fecha);
end;

¿Alguna sugerencia?

Gracias anticipadas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con funcion y package

Publicado por Sergio (39 intervenciones) el 16/07/2010 17:58:06
Me parece que te faltó agregar el código de lo que finalmente ejecuta la función en el PACKAGE BODY, recuerda que un PACKAGE se conforma de dos partes, el PACKAGE SPEC que es donde declaras el nombre de la función/procedimiento con sus parámetros y tipo de dato a retornar y el PACKAGE BODY donde además de especificar lo primero, es donde va el código que se va a ejecutar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar