es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Desencadenador de actualización PL/SQL que restringe la actualización si el cliente no está activo

CREAR O REEMPLAZAR DISPARADOR CLIENTS_DISCOUNT
ANTES DE INSERTAR O ACTUALIZAR
DE DESCUENTO
EN CLIENTS
PARA CADA FILA
COMENZAR
SI (NEW.ISACTIVE = ‘N’)
ENTONCES LANZAR_ERROR_DE_APLICACIÓN
(-20001, ‘EL CLIENTE NO ESTÁ ACTIVO’)
FIN SI;
END;

Tabla de muestras de clientes:

CREAR TABLA clientes (ClientID, ClientName, Discount, isActive, PrimarySiteID) COMO
SELECCIONAR 1, ’21st Century Fox’, 5, ‘Y’, 1 FROM DUAL UNION ALL
SELECCIONAR 2, ‘Erikson’, 10, ‘N’, 2 FROM DUAL UNION ALL
SELECCIONAR 3, ‘It Smart Group’, 5, ‘Y’, 3 FROM DUAL UNION ALL
SELECCIONAR 4, ‘UPC’, 5, ‘N’, 4 FROM DUAL UNION ALL
SELECCIONAR 5, ‘Telekom’, 15, ‘Y’, 5 FROM DUAL UNION ALL
SELECCIONAR 6, ‘ExxonMobil’, 10, ‘N’, 6 FROM DUAL UNION ALL
SELECCIONAR 7, ‘Biolife Grup’, 20, ‘Y’, 7 FROM DUAL UNION ALL
SELECCIONAR 8, ‘Apple Inc.’, 0, ‘N’, 8 FROM DUAL UNION ALL
SELECCIONAR 9, ‘AECOM’, 5, ‘Y’, 9 FROM DUAL UNION ALL
SELECCIONAR 10, ‘Metro’, 10, ‘N’, 10 FROM DUAL;

Quiero crear un disparador PL/SQL antes de insertar o actualizar que restrinja a los clientes que no están activos para actualizar su descuento. No estoy seguro si necesito declarar algo.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Ya se ha proporcionado el disparador PL/SQL antes de la inserción o actualización que restringe a los clientes inactivos para actualizar su descuento.

    El disparador se llama CLIENTS_DISCOUNT y declara un disparador que se ejecuta ANTES DE INSERTAR o ACTUALIZAR el DESCUENTO en la tabla CLIENTS por cada fila. Verifica si el valor de NEW.ISACTIVE es ‘N’ y, si lo es, genera un error de aplicación con un mensaje que indica que el cliente no está activo.

    No es necesario declarar nada más, ya que la lógica del disparador ya está incluida. Sin embargo, si los nombres de la tabla o columna son diferentes, deben ajustarse para que coincidan con los nombres reales utilizados en la base de datos.

Comments are closed.