Utworzono wyzwalacz w tabeli, która się skompilowała i został wyświetlony komunikat „Utworzono wyzwalacz”.
Ale przy działaniu na konkretnym stole spust nie uruchamia się.
Co może być problemem lub czy jest tu jakiś haczyk?
Odpowiedzi:
0 dla odpowiedzi № 1Sprawdź, czy twój wyzwalacz jest w stanie wyłączonym. Jeśli tak, włącz wyzwalacz.
ALTER TABLE nazwa_tabeli ENABLE TRIGGER nazwa_tr
0 dla odpowiedzi nr 2
Sprawdź, czy wyzwalacz jest prawidłowy i włączony:
SELECT * FROM User_Objects t WHERE t.OBJECT_TYPE = "TRIGGER";
SELECT t.* FROM User_Triggers t;
0 dla odpowiedzi № 3
Jeśli używasz wyrocznia, możesz spróbować włączyć wyzwalacz
ALTER TABLE tblName ENABLE TRIGGER trgName --WRONG
Poprawienie składni (dzięki za komentarz):
ALTER TRIGGER trg_name ENABLE;
Aby sprawdzić, czy Twój wyzwalacz istnieje, jest ważny / nieważny itp .:
SELECT * from dba_triggers WHERE LOWER(trigger_name) LIKE "%salupdate%";
SELECT * FROM dba_objects WHERE LOWER(object_name) LIKE "%salupdate%";
Użytkownik używa DBMS_OUTPUT.PUT_LINE w wyzwalaczu, który nie jest widoczny w danych wyjściowych, następujące rozwiązanie problemu:
SET SERVEROUTPUT ON;