Отображается ОШИБКА PL/SQL: ORA-00947: недостаточно значений
Пожалуйста, помогите мне, как ввести правильные значения? Поскольку значение всегда меньше и показывает недостаточное количество значений ERR, ошибка здесь
Вот мой код:
CREATE OR REPLACE 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;
/
3 ответа
Ваш оператор INSERT показывает только 4 элемента в
VALUES
пункт, но 6 в списке имен столбцов. Они оба должны совпадать.
спасибо, сэр, @TenG решил добавить эти сценарии:
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,:OLD.REGION_NAME,:NEW.REGION_ID,:NEW.REGION_NAME,TO_CHAR(SYSDATE,'DD-MON-YYYY HH24:MI:SS'),warning);
теперь я попытался вставить данные в свою основную таблицу, сэр,
но он показывает ошибку, подобную этой, после того, как я настроил триггер
нажмите, чтобы показать изображение
теперь это решено .... проблема с триггером,
я меняю (TO_CHAR) >>> (TO_DATE)
ошибка :
VALUES(REGION_HILMI_SEQUENCE.NEXTVAL,:OLD.REGION_NAME,:NEW.REGION_ID,:NEW.REGION_NAME,TO_CHAR(SYSDATE,'DD-MON-YYYY HH24:MI:SS'),warning);
Работа :
VALUES(REGION_HILMI_SEQUENCE.NEXTVAL,:OLD.REGION_NAME,:NEW.REGION_ID,:NEW.REGION_NAME,TO_DATE(SYSDATE,'DD-MON-YYYY HH24:MI:SS'),warning);