Я унаследовал некоторый неприятный код PL / SQL в базе данных 10g, который неправильно удаляет строки из конкретной таблицы.
Я знаю, что удаление происходит, потому что я настроил триггер, который записываетподробности строки при удалении строки.
Очевидно, что простым ответом будет «поиск» удаления из. «Однако только одна из задействованных процедур содержит 18 страниц PL / SQL, и процедура имеет около 25 параметров.. Удаление в коде указывает, какие строки удаляются с помощью очень сложных объединений, которые включают много параметров. Это неприятный, неприятный код, отладка которого займет некоторое время.
Существуют ли в Oracle инструменты, которые могут помочь мне точно определитьоператор, вызывающий удаление?
Что было бы идеально, так это триггер, который записывает трассировку стека при удалении, но я не думаю, что он существует.
Мне сказали, что включениетрассировка может помочь, но это также может быть довольно сложным упражнением, в зависимости от того, сколько выводится трассировки.
Я тоже думал овозможно, заблокировав таблицу и увидев, где выдается ошибка, но, учитывая, что код, несомненно, выполняет много операций вставки перед удалением, я не знаю, что эта ошибка поможет.
Все мысли приветствуются.