В Oracle существует замечательный пакет DBMS_ROWID, а замечателен он тем, что по rowid строки может рассказать всякую информацию о нет, в том числе и сведения, о том, в какой таблице она находится.
Подробности о функциях, содержащихся в пакете можно прочитать по ссылкам: Oracle Doc и PSOUG
Есть тонкость в использовании самой ходовой, для меня, функции из этого пакета:
Подробности о функциях, содержащихся в пакете можно прочитать по ссылкам: Oracle Doc и PSOUG
Есть тонкость в использовании самой ходовой, для меня, функции из этого пакета:
DBMS_ROWID.ROWID_OBJECT (rowid_id IN ROWID) RETURN NUMBER;
Данная функция возвращает Id объекта, который содержит наш rowid, самым не очевидным моментом связанным с этой функцией является то, обстоятельство, что object id, который она возвращает для таблиц (по крайней мере в Oracle 11g) надо искать в user_objects или all_objects, не в поле object_id, а поле data_object_id.
Этот не самый очевидный момент заставлял меня несколько раз прерывать программирование и лазить в дебрях БД.
Комментариев нет:
Отправить комментарий