1 创建库:
create or replace library LIB_XXX
as 'c:\xxx.dll';
2 调用接口:
FUNCTION Uf_Close RETURN BINARY_INTEGER IS
LANGUAGE c
LIBRARY Lib_XXX NAME "DLL中的函数";3 配置监听listener.ora和tnsnames.ora
create or replace library LIB_XXX
as 'c:\xxx.dll';
2 调用接口:
FUNCTION Uf_Close RETURN BINARY_INTEGER IS
LANGUAGE c
LIBRARY Lib_XXX NAME "DLL中的函数";3 配置监听listener.ora和tnsnames.ora
# 成功连接服务器的环境配置
-------------------------------------------------------------------------------
# 监听器部分
-------------------------------------------------------------------------------
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 本地计算机名)(PORT = 1521))
)
)
)
# 1. KEY = EXTPORC 后面的0,1,...代表要访问的SID对应注册表的 HOME0,HOME1, ... 等
# 2. HOST 用IP的方式不好,对WIN2000SERVER,如果本地没有插网线,则不能用连接串访问
# 3. HOST 用计算机名方式需要注意的是,如果计算机名称改变后,要及时修改这里的名称
# 以下部分中(SID_NAME = PLSExtProc),(PROGRAM = ExtProc)都是固定写法.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\Oracle\Ora81)
(PROGRAM = ExtProc)
)
(SID_DESC =
(GLOBAL_DBNAME = 数据库实例SID名称)
(ORACLE_HOME = D:\Oracle\Ora81)
(SID_NAME = 数据库实例SID名称)
)
)
-------------------------------------------------------------------------------
tnsnames.ora 连接配置部分
-------------------------------------------------------------------------------
# 访问数据库
连接串名称 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 主机名称/IP地址)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 数据库实例SID名称)
)
)
# 1. 访问本地外部过程 推荐!!
extproc_connection_data =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = IPC)
(KEY = EXTPROC0)
)
(CONNECT_DATA =
(SID = PLSExtProc)
)
)
# 2. 访问远程外部过程,如果(host=),则是访问本地
# tnsping extproc_connection_data 能够通
# 但在调用数据库服务器上的dll时报错ORA-28575
extproc_connection_data =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
(Host = 主机名称/IP地址)(Port = 1521)
)
(CONNECT_DATA = (SID = ExtProc)
)
)