Práctica 1 - calcularImporteDebido.sql

De FdIwiki ABD
Saltar a: navegación, buscar

--Jcopado (discusión) 20:47 14 mar 2016 (CET) (Jesús Copado y Javier Vicente)

CREATE OR REPLACE FUNCTION calcularImporteDebido(

 cod_pedido NUMBER)

RETURN NUMBER IS

 cont contiene%ROWTYPE;
 
 importe_debido NUMBER(8,2) := 0.00;
 
 precioNull EXCEPTION;
 

BEGIN

 FOR cont IN(
   SELECT *

FROM contiene WHERE pedido = cod_pedido)

 LOOP
   IF NOT cont.precio_con_comision IS NULL THEN 
     importe_debido := importe_debido + (cont.precio_con_comision * cont.unidades);
   ELSE
     RAISE precioNull;
   END IF;
 END LOOP;
 
 RETURN importe_debido;
 
 EXCEPTION
   WHEN precioNull THEN
     DBMS_OUTPUT.put_line('Imposible calcular importe debido del pedido (precio con comision es NULL).');

END calcularImporteDebido;