Diferencia entre revisiones de «Práctica 1 - revisa pedidos.sql»
(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;