Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-06522: Unable to load DLL / 6 сообщений из 6, страница 1 из 1
11.09.2006, 14:50
    #33978206
serg4321
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06522: Unable to load DLL
Привет всем!
Подскажите мне плиз почему у меня не получается воспользоваться внешней процедурой на С++, написаной в 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
11.09.2006, 15:02
    #33978252
serg4321
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06522: Unable to load DLL
Вопрос снят, дело было в том что DLL компилировалась таким образом, что требовала для своей работы еще один файл msvcr80d.dll (т.е. была не самодостаточна). При компиляции поменяли параметер в Code Generation (в Visual Studio) c Multi-threaded DLL на Multi-threaded и все заработало.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
27.11.2007, 15:34
    #34968713
tj-453
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06522: Unable to load DLL
Сейчас нарвался на этот топик и точно с этой проблемкой...спасибо, всё помогло...=)))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
29.06.2010, 13:34
    #36713121
tenzor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06522: Unable to load DLL
serg4321Вопрос снят, дело было в том что DLL компилировалась таким образом, что требовала для своей работы еще один файл msvcr80d.dll (т.е. была не самодостаточна). При компиляции поменяли параметер в Code Generation (в Visual Studio) c Multi-threaded DLL на Multi-threaded и все заработало.

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


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