пытаясь создать триггер - PullRequest
0 голосов
/ 24 апреля 2020

Я хочу создать триггер, который будет хранить время вставки новой строки в таблицу моего сотрудника. пока это мой код, но я продолжаю получать ошибки.

триггер:

CREATE OR REPLACE TRIGGER insert_new_employee
AFTER INSERT ON employees
BEGIN
 insert into audit_cheker (date_create) values (sysdate());
END;

моя таблица для хранения времени для вставки нового элемента:

create table audit_cheker(
date_create date
)

полученная ошибка

00000 - «триггер«% s.% S »недействителен и не прошел повторную проверку»

Причина:

Была предпринята попытка триггера на быть найден для исполнения и признан недействительным. Это также означает, что компиляция / авторизация завершились неудачно для триггера.

Действие:

Варианты устранения ошибок компиляции / авторизации, отключения триггера или сброса триггера. .

1 Ответ

0 голосов
/ 24 апреля 2020

На основании информации, которую вы разместили, должно работать. Вот тестовый пример:

SQL> create table audit_cheker
  2    (date_create date);

Table created.

SQL> create table employees as select empno, ename, deptno From emp;

Table created.

Триггер:

SQL> CREATE OR REPLACE TRIGGER insert_new_employee
  2  AFTER INSERT ON employees
  3  BEGIN
  4   insert into audit_cheker (date_create) values (sysdate());
  5  END;
  6  /

Trigger created.

Пока проблем нет. Давайте проверим это:

SQL> insert into employees (empno, ename, deptno) values (1, 'LF', 10);

1 row created.

SQL> select * from employees where empno = 1;

     EMPNO ENAME          DEPTNO
---------- ---------- ----------
         1 LF                 10

SQL> select * From audit_cheker;

DATE_CREATE
----------------
2020-04-24 07:18

Как видите, он работает .

Если триггер недействителен, попробуйте перекомпилировать его:

SQL> alter trigger insert_new_employee compile;

Trigger altered.

Если это по-прежнему не помогает, пожалуйста, отредактируйте ваше первоначальное сообщение (вопрос, который вы разместили) и скопируйте / вставьте вашу SQL* Plus сессию, чтобы мы могли видеть, что вы сделали и как Oracle ответил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...