Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/01/2012, 07:13
codek_orz
 
Fecha de Ingreso: noviembre-2008
Ubicación: el sol
Mensajes: 146
Antigüedad: 16 años
Puntos: 6
Función en Oracle

Hola buenas a todos tengo el siguiente problema, tengo la siguiente función de oracle:
Código Oracle:
Ver original
  1. CREATE OR REPLACE FUNCTION cantidadSuministrada(
  2.   p_pnom PIEZA.PNOMBRE%TYPE,
  3.   p_snom SUMINISTRADOR.SNOMBRE%TYPE
  4. )
  5.   return SP.CANT%TYPE
  6. AS
  7.   v_cant SP.CANT%TYPE;
  8. BEGIN
  9.   SELECT SUM(cant) INTO v_cant
  10.   FROM sp, suministrador, pieza
  11.   WHERE suministrador.snombre=p_snom
  12.   AND pieza.pnombre=p_pnom
  13.   AND suministrador.sno=sp.sno
  14.   AND pieza.pno=sp.pno;
  15.   return v_cant;
  16. END cantidadSuministrada;

Se crea correctamente, el problema es cuando la ejecuto. Lo hago con el siguiente código para que pregunte los parámetros de la función al usuario:

Código ORACLE:
Ver original
  1. DECLARE
  2.   v_pnom PIEZA.PNOMBRE%TYPE;
  3.   v_snom SUMINISTRADOR.SNOMBRE%TYPE;
  4. BEGIN
  5.   cantidadSuministrada('&v_pnom','&v_snom');
  6. END;

Pero cuando pongo los valores al ejecutarla me devuelve el siguiente error:

Código ERROR:
Ver original
  1. antiguo 5: cantidadSuministrada('&v_pnom','&v_snom');
  2. nuevo 5: cantidadSuministrada('Tuerca','Smith');
  3.  
  4.   cantidadSuministrada('Tuerca','Smith');
  5.   *
  6.  
  7. ERROR en línea 5:
  8. ORA-06550: línea 5, columna 3:
  9. PLS-00221: 'CANTIDADSUMINISTRADA' no es un procedimiento o no se ha definido
  10. ORA-06550: línea 5, columna 3:
  11. PL/SQL: Statement ignored

¿Alguien puede hecharme un cable? Seguramente sea alguna chorrada, pero como estoy aprendiendo y me e bloqueado ahí...


Un saludo y gracias!!