Отражение является рядом функций, который позволяет Вам получать доступ к информации о выполнении своей программы и изменять его поведение (с некоторыми ограничениями).
Это полезно, потому что это позволяет Вам изменять время выполнения behaivour в зависимости от метаинформации Вашей программы, то есть, можно проверить тип возврата функции и изменить способ, которым Вы обрабатываете ситуацию.
В C#, например, можно загрузить блок (.dll) во времени выполнения исследование его, перейдя через классы и приняв меры согласно тому, что Вы нашли. Это также позволило Вам создать экземпляр класса на времени выполнения, вызвать его метод, и т.д.
, Где это может быть полезно? Не полезно каждый раз, но для конкретных ситуаций. Например, можно использовать его, чтобы получить название класса для входа целей, динамично создать обработчики для событий согласно тому, что определяется на конфигурационном файле и так далее...
Да, будет.
Триггеры работают в рамках транзакции оператора DML
(запущенной явно вами или оператором DML
сам неявно)
Когда эта транзакция откатывается, все изменения, сделанные триггерами, также откатываются.
Однако, если вы поместите
PRAGMA autonomous_transaction
в определение триггера, триггер запустит свою собственную транзакцию, которую вы должны зафиксировать до завершения триггера.
Просто примечание - если вы определите триггер уровня оператора AFTER UPDATE (без предложения FOR EACH ROW), он не сработает, если оператор DML в таблице завершится неудачно и будет откат.