Предполагается, что следующий запрос будет работать, но только в том случае, если это будет следующее выполнение оператора после того, которое вы хотите идентифицировать.
select prev_sql_id, prev_child_number
from v$session
where sid = sys_context('userenv','sid')
И он работает ... большую часть времени.Мой клиент написал приложение PL / SQL для Oracle 12c и поместил вышеуказанный запрос в часть кода, которая выполняет запрос приложения.Он показал мне вывод, который показывает, что иногда он возвращает неправильное значение для prev_child_number.Я наблюдал, и это действительно не всегда возвращает правильные данные.За более чем 99 различных выполнений операторов он возвращал неправильное значение prev_child_number 6 раз.
Я нахожусь в процессе поиска существующих ошибок, которые приводят к тому, что этот запрос возвращает неправильные данные, и еще не нашел.Возможно, мне придется зарегистрировать новый SR с поддержкой Oracle.