Вопрос про ораколовские библиотеки

Alex Trust
Дата: 07.03.2007 06:38:37
Господа, как узнать откуда оракл берет функции для своих стандартных библиотек? При создании своей собственной библиотеки прописываешь путь к dll и этот путь указан в таблице ALL_LIBRARIES в поле FILE_SPEC. У ороклячьих библиотек это поле пустует. В частности интересует библиотека DBMS_ADVANCED_REWRITE.
Alex Trust
Дата: 07.03.2007 06:52:59
Ой, то есть пакет DBMS_ADVANCED_REWRITE, а функции он использует библиотеки DBMS_RWEQUIV_LIB.
tru55
Дата: 07.03.2007 10:19:25
что-то не понял, о чем речь
Для работы с пакетом Oracle его нужно загрузить в базу (если его еще там нет)
Alex_IZA
Дата: 07.03.2007 10:57:11
Судя по всему они не динамические, соответвенно oracle.exe (в винде) слинкован с ними статически. В linux-unix можно посмотреть процесс линковки объектников оракла, там наверное будет видно точнее как они собираются, или найти их по заголовкам в объектниках.
Alex Trust
Дата: 07.03.2007 12:47:57
Ага, библиотека статическая!... Спасибо за полезную мысль. Скажите, вот маленький кусочек кода из пакета DBMS_ADVANCED_REWRITE

PROCEDURE CREATE_REWRITE_EQUIVALENCE(...) 
IS EXTERNAL
  NAME "create_rw_equivalence"
  LIBRARY DBMS_RWEQUIV_LIB

Это ведь вызов функции с названием create_rw_equivalence? И если библиотека статическая, то и функция находится внутри exe-шника, а не dll? Я просто прошелся по таблицам экспорта всех dll в оракле и функции с таким названием не нашел. А где бы функцию тогда поискать? В oracle.exe? Если интересно зачем мне это все надо, то я - студент. Копаю от забора и до обеда =).
Alex_IZA
Дата: 07.03.2007 14:32:33
Возьмите к примеру дистрибутив под Linux, там будут сплошные объектники, при инсталляции эти объектники линкуются. Там даже логи линковки сохраняется, в смылсе вызов компилятора, опции и атрибуты. Там проще найти.
А так можно посмотреть и exe-шник, если найдете нужный дебаггер или формат исполняемых файлов винды то наверное найдете.

PS: К сожалению сам под винду не пишу и соответственно не знаю утилит форматов и.т.д.

Например есть пакет DBMS_SUMADV
Вот он во внешней библиотеке
1 SYS DBMS_SUMADV_LIB C:\oracle\9.2.0\bin\oraqsmashr.dll Y VALID

Но внутри файла библиотеке в открытом тексте упоминаний о такой функции нет.
Как там оно внутри виндового файла не знаю.
Alex Trust
Дата: 07.03.2007 18:31:06
Большое спасибо. Намутил дистрибутив Линуха. Будем искать =).