Oracle - Problema al llamar funcion PL/SQL

 
Vista:

Problema al llamar funcion PL/SQL

Publicado por Juan Tomas (1 intervención) el 14/04/2018 11:11:39
Buenas, tengo un problema con una funcion que cuando la llamo me da error
pero la funcion por lo que creo esta bien creada os dejo el codigo a ver si podeis ayudarme:

Cree una función a la que se le pase como parámetros el
idAportacion y una participación-% con el que participa en dicha
aportación- y nos devuelva el valor monetario de la misma
(precioUnitario*cantidad*participacion/100).

create or replace FUNCTION porcpart(id traen.idAportacion%type, participacionP traen.participacion%type)
RETURN NUMBER
IS
v_preciounitario NUMBER(3);
v_cantidad NUMBER(3);
v_participacion traen.participacion%type;
preciototal NUMBER(3);
BEGIN
SELECT ap.preciounitario, ap.cantidad, t.participacion
INTO v_preciounitario, v_cantidad, v_participacion
FROM aportaciones ap, traen t
WHERE t.idAportacion = id;
preciototal := v_preciounitario*v_cantidad*participacionP/100;
RETURN preciototal;
END;

Cuando hago un
SELECT porcpart(2,20) FROM traen, aportaciones;
me dice que el numero de filas es superior, gracias de antemano
Un saludo.
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
Imágen de perfil de gilman
Val: 117
Bronce
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Problema al llamar funcion PL/SQL

Publicado por gilman (52 intervenciones) el 15/04/2018 07:19:08
En la sentencia:
1
2
3
4
SELECT ap.preciounitario, ap.cantidad, t.participacion
INTO v_preciounitario, v_cantidad, v_participacion
FROM aportaciones ap, traen t
WHERE t.idAportacion = id;
Tienes que relacionar las tablas aportaciones y traen, al no relacionarlas devuelve tantos registros como tenga la tabla traen
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