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.

Mostrando ERROR PL/SQL: ORA-00947: valores insuficientes.

Por favor, ayúdame, ¿cómo llenar los valores correctos? Debido a que el valor siempre es menor y muestra ERR, no hay suficientes valores aquí está el error

Aquí está mi código:

CREAR O REEMPLAZAR TRIGGER REGION_HILMI_TRIGGER_WARNING
AFTER INSERT OR UPDATE OR DELETE ON REGION_HILMI
FOR EACH ROW
DECLARE
warning VARCHAR2(400);
BEGIN
IF INSERTING THEN
warning:=’Terjadi penambahan data di tabel regions, dengan
nilai region_id=’||:NEW.region_id||’ dan
region_name=’||:NEW.region_name;
ELSIF UPDATING THEN
warning:=’Terjadi perubahan data di tabel regions, dengan
nilai lama region_id=’||:OLD.region_id||’,
region_name=’||:OLD.region_name||’ nilai baru
region_id=’||:NEW.region_id||’, region_name=’||:NEW.region_name;
ELSIF DELETING THEN
warning:=’Terjadi penghapusan data di tabel regions untuk
region_id=’||:OLD.region_id||’ dan region_name=’||:OLD.region_name;
END IF;
INSERT INTO REGION_HILMI_HISTORY(OLD_REGION_ID,OLD_REGION_NAME,NEW_REGION_ID,NEW_REGION_NAME,CHANGE_TIME,DESCRIPTION)
VALUES(REGION_HILMI_SEQUENCE.NEXTVAL,USER,TO_CHAR(SYSDATE,’DD-MON-YYYY HH24:MI:SS’),warning);
END;
/

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que la declaración INSERT en el disparador está omitiendo algunas columnas, lo que resulta en el error “no hay suficientes valores”. Debes especificar explícitamente las columnas en las que deseas realizar la inserción, de esta manera:

    INSERT INTO REGION_HILMI_HISTORY(OLD_REGION_ID,OLD_REGION_NAME,NEW_REGION_ID,NEW_REGION_NAME,CHANGE_TIME,DESCRIPTION)
    VALUES(:OLD.region_id,:OLD.region_name,:NEW.region_id,:NEW.region_name,TO_CHAR(SYSDATE,'DD-MON-YYYY HH24:MI:SS'),warning);
    

    Esto debería insertar los valores de las regiones antiguas y nuevas, así como la hora del cambio y el mensaje de advertencia, en la tabla HISTORY.

Comments are closed.