Komunikat błędu:
ORA-04098: wyzwalacz 'FN.T_KOMU' jest niepoprawny; ponowne sprawdzenie poprawności nie powiodło się
Prawdopodobnie uszkodzeniu uległ wyzwalacz lub sekwencja.
1. Wyzwalacz T_KOMU powinien wyglądać w następujący sposób - należy zweryfikować jego źródło:
CREATE OR REPLACE TRIGGER T_KOMU BEFORE INSERT ON KOMU FOR EACH ROW BEGIN IF :NEW.ID IS NULL OR :NEW.ID=0 THEN SELECT ID_KOMU.NextVal INTO :NEW.ID FROM DUAL; END IF; END;
Jeżeli treść jest zgodna, należy dokonac próby kompilacji wyzwalacz, np. za pomocą programu Dolphin czy Orbada, lub wykonać polecenie:
alter TRIGGER T_KOMU compile;
2. Jeżeli pomimo poprawnej treści skompilowanie nie jest możliwe, należy sprawdzić czy w bazie danych istnieje sekwencja ID_KOMU. Jeżeli nie, konieczne jest jej założenie z odpowiednią wartością startową.
CREATE SEQUENCE ID_KOMU MINVALUE 1 START WITH xxx INCREMENT BY 1 NOCACHE;
W miejsce xxx należy wstawić najwyższą wartość +1 jaka istnieje w kolumnie ID w tabeli KOMU.
Całą operacje należy zatwierdzić COMMIT.
Przed jakimikolwiek pracami na bazie danych zaleca się wykonanie kopi bezpieczeństwa. |