Является очень новым для триггеров Oracle. Предположим, что у меня есть триггер на вставке в таблице emp. Есть ли способ узнать, что было вставленной записью, которая запускала триггер. Я хотел, чтобы триггер имел код, который что-то делал, если вставленная запись была конкретным значением.Получение значения, вызвавшего триггер Oracle
7
A
ответ
10
Если у вас есть триггер на уровне строк, вы можете просто использовать :NEW
псевдо-запись
CREATE TRIGGER name_of_trigger
BEFORE INSERT ON emp
FOR EACH ROW
DECLARE
<<declare variables>>
BEGIN
IF(:new.ename = 'JUSTIN')
THEN
<<do something if the newly inserted ENAME value is 'JUSTIN'>>
END IF;
END;
Для триггера DDL, подход совершенно иной. В этом случае псевдофункции ora_dict_obj_owner и ora_dict_obj_name вернут владельца и имя таблицы, в которой работает оператор DDL.
7
Строка, которая в настоящее время insertes доступен как NEW
в триггере
ЗАКАНЧИВАТЬ руководство для получения более подробной информации.
http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/create_trigger.htm#BABEBAAB
http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/triggers.htm#LNPLS99955
Смежные вопросы
- 1. Ведение журнала SQL, вызвавшего триггер
- 2. Получение адреса, вызвавшего ошибку
- 3. Получение виджета, вызвавшего событие?
- 4. PHP - Получение класса, вызвавшего метод
- 5. Получение имени файла скрипта python, вызвавшего функцию
- 6. MS CRM - получение поля, вызвавшего сохранение формы
- 7. Oracle триггер, который вызывает другой триггер
- 8. Откат и триггер ORACLE
- 9. Oracle: Триггер не работает
- 10. Oracle триггер не работает
- 11. Триггер с функцией Oracle
- 12. Oracle, триггер перед обновлением
- 13. Триггер недействителен в Oracle
- 14. Как скомпилировать триггер ORACLE
- 15. Oracle триггер уровня строки
- 16. Oracle Триггер выпуск (жаба)
- 17. Oracle: Триггер для обновления
- 18. Oracle - переписать триггер
- 19. Oracle ПОСЛЕ ВСТАВКИ Триггер
- 20. Oracle триггер на дату
- 21. Oracle триггер, не вставляющий значения в другую таблицу
- 22. Oracle триггер для обновления значения столбца в той же таблице
- 23. Oracle триггер для вставки значения из другой таблицы в цикле
- 24. Oracle триггер вместо и rowcount
- 25. Oracle огнь триггер перед обновлением
- 26. Oracle Триггер ти петли вставки
- 27. SQL Oracle Триггер изменить дату
- 28. Отключить триггер с триггера Oracle
- 29. Создать триггер в Oracle 11g
- 30. Oracle триггер, который не работает
Hey @ Justin Cave жаль беспокоить вас, но я понял, что мне действительно нужен триггер DDL или SYstem, а не триггер DML. Я бы назвал триггер каждый раз, когда новая таблица создается в схеме 'CREATE ИЛИ REPLACE TRIGGER drop_trigger ПОСЛЕ СОЗДАНИЯ НА hr.SCHEMA BEGIN END;' Как я получу имя созданной таблицы, которая активировала триггер сейчас? Это еще НОВЫЙ? – Eosphorus
@ Eosphorus - Нет, триггеры DDL - очень разные животные. Обновлен мой ответ. –
большое спасибо Джастин. Это довольно много раз, когда вы мне помогли. Я очень ценю это :) – Eosphorus