powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-06522: Unable to load DLL
6 сообщений из 6, страница 1 из 1
ORA-06522: Unable to load DLL
    #33978206
serg4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!
Подскажите мне плиз почему у меня не получается воспользоваться внешней процедурой на С++, написаной в MS Visual Studio 2005. Или скажите где мне искать ошибку.

Oracle (через PLSQL Dev.) выдает следующее сообщение (кстати процесс extproc.exe в дереве появляется):

Код: plaintext
1.
2.
3.
4.
select mysum( 2 , 2 ) from dual
                       *
ERROR at line  1 :
ORA- 06520 : PL/SQL: Error loading external library
ORA- 06522 : Unable to load DLL

Я вроде все везде настроил правильно:

listener

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = vinga-gleb)(PORT =  1521 ))
      )
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\ora92)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ANY")
    )
    (SID_DESC =
      (GLOBAL_DBNAME = primary)
      (ORACLE_HOME = C:\oracle\ora92)
      (SID_NAME = primary)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = rep)
      (ORACLE_HOME = C:\oracle\ora92)
      (SID_NAME = rep)
    )
  )

tnsnames
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

Исходник на PL/SQL

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create or replace library testlib
as 'D:\temp\uiu.dll';

CREATE OR REPLACE function MySum (a       IN      binary_integer,
                                  b       IN      binary_integer ) return binary_integer IS
LANGUAGE C
NAME "ExtPow"
LIBRARY testlib 
--WITH CONTEXT
PARAMETERS (
      --context,
      a      int,
      b      int);
      
Dll действительно находится в папке D:\temp (я на всякий случай поместил ee копию в ORACLE_HOME\bin и в WINNT\SYSTEM32)

Исходник на MS Visual Studio

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#include <math.h>

extern "C" __declspec(dllexport) int ExtPow(int  a, int b);

__declspec(dllexport) int ExtPow(int  a, int b)
{
 return pow((double)a,(double)b);
}

Очень буду признателен за ответы, не могупонять в чем тут дело, потому что все настройки у меня в точности как пишут на здесь форуме
...
Рейтинг: 0 / 0
ORA-06522: Unable to load DLL
    #33978252
serg4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос снят, дело было в том что DLL компилировалась таким образом, что требовала для своей работы еще один файл msvcr80d.dll (т.е. была не самодостаточна). При компиляции поменяли параметер в Code Generation (в Visual Studio) c Multi-threaded DLL на Multi-threaded и все заработало.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ORA-06522: Unable to load DLL
    #34968713
tj-453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас нарвался на этот топик и точно с этой проблемкой...спасибо, всё помогло...=)))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ORA-06522: Unable to load DLL
    #36713121
tenzor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg4321Вопрос снят, дело было в том что DLL компилировалась таким образом, что требовала для своей работы еще один файл msvcr80d.dll (т.е. была не самодостаточна). При компиляции поменяли параметер в Code Generation (в Visual Studio) c Multi-threaded DLL на Multi-threaded и все заработало.

Т.е. если моя dll будет использовать еще одну dll, то работать не будет.
Я так понял, что для этого есть LD_LIBRARY_PATH или это для другого?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ORA-06522: Unable to load DLL
    #37356584
lexxsuse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
) раз в год кто-то находит этот топик полезным. +1
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ORA-06522: Unable to load DLL
    #39695782
Фотография vava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аааа ! Помогло !
Вроде всё логично, но промучился два дня, а догадаться не мог.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-06522: Unable to load DLL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]