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; /