Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Ayuda con funcion para incluir en un package

Estas en el tema de Ayuda con funcion para incluir en un package en el foro de Oracle en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 21/04/2010, 06:51
 
Fecha de Ingreso: abril-2008
Mensajes: 20
Antigüedad: 16 años, 8 meses
Puntos: 0
Ayuda con funcion para incluir en un package

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 perfecta, osea que funciona correctamente. Lo siguiente que quiero es añadir esta funcion a un Package llamado CALCULOS 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.
  #2 (permalink)  
Antiguo 21/04/2010, 08:21
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 6 meses
Puntos: 43
Respuesta: Ayuda con funcion para incluir en un package

¿ Donde está el Body ?
  #3 (permalink)  
Antiguo 21/04/2010, 10:06
Avatar de 8vio  
Fecha de Ingreso: marzo-2008
Ubicación: Detras del monitor
Mensajes: 168
Antigüedad: 16 años, 8 meses
Puntos: 6
Respuesta: Ayuda con funcion para incluir en un package

Hola,

Como dice JC3000, te falta el body de la función en el paquete.

En Developer haz click derecho sobre el paquete y dale a la opcion edit Spec & Body.

Se van abrir dos pestañas. La primera es el body (la que tiene la caja azul cerrada) Aqui debes agregar

FUNCTION NUEVA (CODIGO IN NUMBER, FECHA IN DATE)
RETURN NUMBER;

y etc etc con todos tus procedimientos y funciones del paquete.

De no estar el body no funciona el test.

Saludos,
  #4 (permalink)  
Antiguo 22/04/2010, 00:41
 
Fecha de Ingreso: abril-2008
Mensajes: 20
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Ayuda con funcion para incluir en un package

Vaya, teneis razón, creía que con crear la funcion dentro de la carpeta Functions que está fuera de la carpeta Packages era suficiente para poder usarla luego desde el package ... .. pero bueno una para saber y otra para aprender.

Muchas gracias!!

Etiquetas: funcion, incluir
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:30.