Diferencia entre revisiones de «Práctica 1 - revisa pedidos.sql»

De FdIwiki ABD
Saltar a: navegación, buscar
(Página creada con «--~~~~ (Jesús Copado y Javier Vicente) CREATE OR REPLACE PROCEDURE REVISA_PEDIDOS IS CURSOR cursor_pedidos IS SELECT codigo, importe_total FROM pedidos FOR UPDATE...»)
 
Línea 1: Línea 1:
 
--[[Usuario:Jcopado|Jcopado]] ([[Usuario discusión:Jcopado|discusión]]) 20:48 14 mar 2016 (CET) (Jesús Copado y Javier Vicente)
 
--[[Usuario:Jcopado|Jcopado]] ([[Usuario discusión:Jcopado|discusión]]) 20:48 14 mar 2016 (CET) (Jesús Copado y Javier Vicente)
  
CREATE OR REPLACE PROCEDURE REVISA_PEDIDOS IS
+
  CREATE OR REPLACE PROCEDURE REVISA_PEDIDOS IS
  
 
CURSOR cursor_pedidos IS
 
CURSOR cursor_pedidos IS
Línea 17: Línea 17:
 
uni_contiene NUMBER(4);
 
uni_contiene NUMBER(4);
 
 
BEGIN
+
  BEGIN
  
 
OPEN cursor_pedidos;
 
OPEN cursor_pedidos;
Línea 41: Línea 41:
 
END IF;
 
END IF;
  
END REVISA_PEDIDOS;
+
  END REVISA_PEDIDOS;

Revisión de 21:51 14 mar 2016

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

 CREATE OR REPLACE PROCEDURE REVISA_PEDIDOS IS

CURSOR cursor_pedidos IS SELECT codigo, importe_total FROM pedidos FOR UPDATE OF pedidos.importe_total;

importe_debido NUMBER(8,2); num_filas_modificadas INT := 0;

imp_pedido NUMBER(8,2); cod_pedido NUMBER(8);

pre_contiene NUMBER(8,2); uni_contiene NUMBER(4);

 BEGIN

OPEN cursor_pedidos; LOOP FETCH cursor_pedidos INTO cod_pedido, imp_pedido; EXIT WHEN cursor_pedidos%NOTFOUND; importe_debido := calcularImporteDebido(cod_pedido); IF importe_debido <> imp_pedido THEN num_filas_modificadas := num_filas_modificadas + 1; UPDATE pedidos SET importe_total = importe_debido WHERE CURRENT OF cursor_pedidos; DBMS_OUTPUT.put_line(' - El importe total del pedido de código ' || cod_pedido || ' ha sido actualizado a ' || importe_debido); END IF; END LOOP;

CLOSE cursor_pedidos;

IF num_filas_modificadas = 0 THEN DBMS_OUTPUT.put_line('Ningún cambio en los datos de la tabla Pedidos.'); ELSE DBMS_OUTPUT.put_line('Número de filas modificadas en la tabla Pedidos: ' || num_filas_modificadas); END IF;

 END REVISA_PEDIDOS;