Я пытаюсь реализовать псевдо-контроль версий и репозиторий для Oracle.
Идея такова: когда хранимая функция / процедура изменяется или создается глобальная база данных
срабатывает триггер, который будет захватывать текущие источники измененного объекта и сохранять их
к столу.
Поэтому я использую два триггера:
TRIGGER BEFORE_MODIFY before ALTER or CREATE ON DATABASE
TRIGGER AFTER_MODIFY after ALTER or CREATE ON DATABASE
Все работает нормально, за исключением того, что триггер AFTER_MODIFY видит старую версию (источники) скомпилированного объекта.
Я попытался получить источники из SYS.SOURCE$.SOURCE
и в качестве второй попытки из dbms_metadata.get_ddl(OBJ_TYPE, OBJ_NAME, OBJ_OWNER)
с теми же результатами.
Я ищу совет или определенный ответ, такой как «Вы не можете сделать это в Oracle 10g +».