Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 неработает тригер на INSERT, DELETE, UPDATE  [new]
adminsamara
Member

Откуда: Самара
Сообщений: 545
CREATE TRIGGER testm
	AFTER INSERT OR DELETE OR UPDATE ON IMEI_R

DECLARE

BEGIN

INSERT INTO IMEI_ARCHIVE(USAL, TISP)
		VALUES(USER, SYSDATE);

END testm;


ошибки:

TRIGGER TESTM compiled
Errors: check compiler log


Почему?!
сильно не ругайте мой 1 тригер!
14 янв 15, 15:04    [17117167]     Ответить | Цитировать Сообщить модератору
 Re: неработает тригер на INSERT, DELETE, UPDATE  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Посмотреть ошибки
SELECT *
FROM user_errors


А вообще у тебя между DECLARE и BEGIN ничего нет
14 янв 15, 15:28    [17117397]     Ответить | Цитировать Сообщить модератору
 Re: неработает тригер на INSERT, DELETE, UPDATE  [new]
adminsamara
Member

Откуда: Самара
Сообщений: 545
tru55,
Спасибо, перепроверил, нашел ошибку, но вопрос следующий, может что не так делаю?!
CREATE OR REPLACE TRIGGER iarchive
	AFTER INSERT OR DELETE OR UPDATE ON IMEI_IC

DECLARE

BEGIN

INSERT INTO imei_archive(IMEI, model, n_doc, data_h, iniciator, data_p, data_zagr, usal, data_archive)
		VALUES(IMEI, model, n_doc, data_h, iniciator, data_p, data_zagr, USER, SYSDATE);

END iarchive;


IMEI, model, n_doc, data_h, iniciator, data_p, data_zagr-это я правильно указал? должно браться из IMEI_IC
14 янв 15, 15:38    [17117491]     Ответить | Цитировать Сообщить модератору
 Re: неработает тригер на INSERT, DELETE, UPDATE  [new]
hinotf
Member

Откуда: Протвино
Сообщений: 722
Про :new и :old в триггерах почитайте.
14 янв 15, 15:46    [17117557]     Ответить | Цитировать Сообщить модератору
 Re: неработает тригер на INSERT, DELETE, UPDATE  [new]
adminsamara
Member

Откуда: Самара
Сообщений: 545
hinotf,
Можно на примере, читал читал, нифига не начитал ( простенький пример...
14 янв 15, 16:52    [17118166]     Ответить | Цитировать Сообщить модератору
 Re: неработает тригер на INSERT, DELETE, UPDATE  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1639
adminsamara
нифига не начитал


даже гугл не начитал?
14 янв 15, 17:04    [17118263]     Ответить | Цитировать Сообщить модератору
 Re: неработает тригер на INSERT, DELETE, UPDATE  [new]
xenix
Guest
автор
Можно на примере, читал читал, нифига не начитал ( простенький пример

а при UPDATE В журнал что падает - старое или новое (это к вопросу про :NEW, :OLD)
14 янв 15, 17:08    [17118284]     Ответить | Цитировать Сообщить модератору
 Re: неработает тригер на INSERT, DELETE, UPDATE  [new]
stax..
Guest
adminsamara
hinotf,
Можно на примере, читал читал, нифига не начитал ( простенький пример...


если грубо в VALUES

:NEW.IMEI -новое значение при insert/update
:OLD.IMEI -старое значение при update/delete


......
stax
14 янв 15, 18:52    [17118870]     Ответить | Цитировать Сообщить модератору
 Re: неработает тригер на INSERT, DELETE, UPDATE  [new]
varlamovvp
Member

Откуда: Moscow
Сообщений: 297
adminsamara,

кстати, не забудь
:new and :old допустимо только для FOR EACH ROWS :)
14 янв 15, 18:58    [17118894]     Ответить | Цитировать Сообщить модератору
 Re: неработает тригер на INSERT, DELETE, UPDATE  [new]
adminsamara
Member

Откуда: Самара
Сообщений: 545
Посмотрите, корректно составил, вроде как работает?!

CREATE OR REPLACE TRIGGER iarchive
	AFTER INSERT OR DELETE OR UPDATE ON IMEI_IC
FOR EACH ROW

DECLARE

BEGIN

INSERT INTO imei_archive(imei, model, n_doc, data_h, iniciator, data_p, data_zagr,  usal, data_archive)
		VALUES(:NEW.IMEI, :NEW.model, :NEW.n_doc, :NEW.data_h,:NEW.iniciator, :NEW.data_p, :NEW.data_zagr , USER, SYSDATE);


END iarchive;
15 янв 15, 09:44    [17120610]     Ответить | Цитировать Сообщить модератору
 Re: неработает тригер на INSERT, DELETE, UPDATE  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
В архив логично писать старые значения (которые будут стерты в основной таблице), а не новые.
15 янв 15, 09:50    [17120639]     Ответить | Цитировать Сообщить модератору
 Re: неработает тригер на INSERT, DELETE, UPDATE  [new]
adminsamara
Member

Откуда: Самара
Сообщений: 545
tru55,

тогда даже вот так

CREATE OR REPLACE TRIGGER iarchive
	AFTER INSERT OR DELETE OR UPDATE ON IMEI_IC
FOR EACH ROW

DECLARE

BEGIN

INSERT INTO imei_archive(imei, model, n_doc, data_h, iniciator, data_p, data_zagr,  usal, data_archive)
		VALUES(:OLD.IMEI, :OLD.model, :OLD.n_doc, :OLD.data_h,:OLD.iniciator, :OLD.data_p, :OLD.data_zagr , USER, SYSDATE);


END iarchive;
15 янв 15, 09:54    [17120656]     Ответить | Цитировать Сообщить модератору
 Re: неработает тригер на INSERT, DELETE, UPDATE  [new]
adminsamara
Member

Откуда: Самара
Сообщений: 545
adminsamara,

ОК?! =)
15 янв 15, 09:57    [17120676]     Ответить | Цитировать Сообщить модератору
 Re: неработает тригер на INSERT, DELETE, UPDATE  [new]
-2-
Member

Откуда:
Сообщений: 15330
tru55
В архив логично писать старые значения (которые будут стерты в основной таблице), а не новые.
мне кажется, чаще встает вопрос, когда значения появились, а не когда исчезли. и удобнее присутствие в архиве журнале всех значений, а не за вычетом актуальных.
15 янв 15, 11:21    [17121221]     Ответить | Цитировать Сообщить модератору
 Re: неработает тригер на INSERT, DELETE, UPDATE  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
-2-
мне кажется, чаще встает вопрос, когда значения появились

Обычно появление значений (если это существенно) фиксируется в основной таблице (типа update_date)
15 янв 15, 11:39    [17121339]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить