ceu-notes/2/ASGBD/samples/fecha-y-stock.sql
Nicolás A. Ortega Froysa 78442e5fc1 ASGBD: add SQL samples
Signed-off-by: Nicolás A. Ortega Froysa <nicolas@ortegas.org>
2023-02-10 19:37:15 +01:00

38 lines
1.0 KiB
SQL

alter session set "_ORACLE_SCRIPT"=true;
set serveroutput on;
CREATE TABLE PEDIDOS_COPIA AS (SELECT * FROM PEDIDOS);
DROP TRIGGER PEDIDO_LLEGA_TARDE;
CREATE OR REPLACE TRIGGER PEDIDO_LLEGA_TARDE
--AFTER
BEFORE
INSERT OR UPDATE OF FECHAESPERADA OR UPDATE OF FECHAENTREGA
ON PEDIDOS_COPIA
FOR EACH ROW
BEGIN
IF :NEW.FECHAESPERADA < :NEW.FECHAENTREGA
THEN
:NEW.COMENTARIOS := 'Pedido con retraso';
--UPDATE PEDIDOS_COPIA SET COMENTARIOS='Pedido con retraso' WHERE CODIGOPEDIDO=:NEW.CODIGOPEDIDO;
END IF;
END;
/
CREATE OR REPLACE TRIGGER PRODUCTO_SIN_STOCK
BEFORE
INSERT OR UPDATE OF CODIGOPRODUCTO OR UPDATE OF CANTIDAD
ON DETALLEPEDIDOS
FOR EACH ROW
DECLARE
STOCK PRODUCTOS.CANTIDADENSTOCK%type;
BEGIN
SELECT CANTIDADENSTOCK INTO STOCK FROM PRODUCTOS WHERE CODIGOPRODUCTO=:NEW.CODIGOPRODUCTO;
IF STOCK < :NEW.CANTIDAD
THEN
raise_application_error(-20669, 'Not enough of product in stock.');
END IF;
END;
/