Error loading external library
Bonjour,
Config : Oracle 9i, Windows 2000.
J'ai créé une dll C (lib1.dll) qui elle-même utilise une dll (lib2.dll). Ces 2 dll sont dans un répertoire C:\Lib
J'ai créé une libraire :
Code:
CREATE OR REPLACE LIBRARY MA_LIB AS 'C:\Lib\lib1.dll'
J'ai créé ma procédure externe :
Code:
1 2 3 4 5 6
| FUNCTION LibEntryPoint(id IN PLS_INTEGER) RETURN PLS_INTEGER
AS LANGUAGE C
NAME "libEntryPoint"
LIBRARY "MA_LIB"
WITH CONTEXT
PARAMETERS(CONTEXT, id INT); |
Mais qu'en j'essai d'exécuter :
Code:
1 2 3 4 5
| DECLARE
err NUMBER;
BEGIN
err := LibEntryPoint(1);
END; |
J'obtiens l'erreur suivante :
Code:
1 2
| ORA-06520: PL/SQL: Error loading external library
ORA-06522: Unable to load DLL |
Le listener.ora est configuré:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = nufas4)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(ENVS="EXTPROC_DLLS=ANY")
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\Programs\ora92)
(PROGRAM = extproc)
)
) |
et le tnsname.ora contient :
Code:
1 2 3 4 5
| EXTPROC_CONNECTION_DATA=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
(CONNECT_DATA = (SID = PLSExtProc))
) |
J'ai également essayé d'ajouter le répertoire où se trouvent les 2 dll dans la variable d'environnement "path" mais ça ne change rien.
Par contre, si je modifie la dll "lib1" pour qu'elle n'utilise plus la dll "lib2" ça fonctionne...
Quelqu'un peut-il m'aider ?
Merci