急!那位耐心帮我看一看这个pl/sql调用外部dll的问题.
我从vb调用存储过程,在存储过程中调用外部dll中的函数。请看这些设置对吗?
运行时错误:
ORA-28575: unable to open RPC connection to external procedure agent
1)in tnsnames.ora
extproc_connection_data = (DESCRIPTION =
(ADDRESS = (PROTOCOL=IPC)
(KEY=extproc_key)
)
(CONNECT_DATA = (SID = extproc_agent)
)
2)in listener.ora
EXTERNAL_PROCEDURE_LISTENER =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL=ipc)
(KEY=extproc_key)
)
)
SID_LIST_EXTERNAL_PROCEDURE_LISTENER =
(SID_LIST =
(SID_DESC = (SID_NAME=extproc_agent)
(ORACLE_HOME=E:/oracle/ora92)
(PROGRAM=extproc)
)
)
3) CREATE LIBRARY AGIS_LIB AS 'F:/projects/test/vctstdll/debug/vctstdll.dll';
4) PL/SQL
CREATE PROCEDURE TESTPROC (
(
STR1 in VARCHAR2
)
as
RES PLS_INTEGER;
begin
RES := TEST_1(STR1);
end;
CREATE FUNCTION TEST_1 (
STR_IN VARCHAR2 ,
)RETURN PLS_INTEGER
AS EXTERNAL
LIBRARY AGIS_LIB
NAME "test1"
LANGUAGE C;
5)DLL中的函数原型:
_declspec(dllexport) long _stdcall test1(LPTSTR strIn);