配置 Oracle extproc 以使用 SQL 访问地理数据库(2)

这是 extproc 在运行时所使用的环境变量的列表。列表用冒号分隔。此列表必须包括环境变量 EXTPROC_DLLS 以及 extproc 在运行时需要的任何其他环境变量的定义,其他环境变量通常包括 UNIX 和 Linux 系统中的 LD_LIBRARY_PATH、SHLIB_PATH 或 LIBPATH,或者 Windows 服务器上的 PATH。路径变量通常包括几何与投影引擎库的位置。

EXTPROC_DLLS

此环境变量用于定义 extproc 可直接从中加载和调用函数的库的列表。必须在此指定包含以下库的文件的路径:形状库,用于通过 SQL 来访问 ST_Geometry 类型或 GDB_ITEMS_VW 和 GDB_ITEMRELATIONSHIPS_VW 视图;st_raster 库,用于通过 SQL 来访问 ST_Raster 类型。

对于安装在 UNIX 上的 Oracle 服务器,列表用冒号分隔,对于安装在 Windows 上的 Oracle 服务器,列表用分号分隔。所有路径都必须是绝对路径并且指向本地目录,或者是 Oracle 系统用户可访问的 UNC 路径。这也意味着如果已将 ArcSDE 应用程序服务器安装在非 Oracle 服务器上,则必须将形状和栅格库从 SDEHOME 中的 bin 目录复制到 Oracle 服务器。

不存在环境变量替换。

可选关键字 ANY 和 ONLY 可用于放宽或限制 extproc 使用库文件的方式。如果将 ANY 放在路径前面,Oracle 可从指定路径加载任何库并且不必提供库名称。如果将 ONLY 放在路径前面,Oracle 将仅使用路径中提供的特定库。

KEY

为此条目设置的值将此监听器链接到文件 tnsnames.ora 中的对应服务条目。该值将此监听器与可能存在于同一数据库服务器的其他 IPC 监听器区分开来。key 可为任何名称缩写,但在文件 listener.ora 和 tnsnames.ora 中必须相同。key 区分大小写。

进行任何更改之前,要备份 tnsnames.ora 和 listener.ora 文件。

打开 Oracle 服务器上的 tnsnames.ora 文件。

在 tnsnames.ora 文件中更改 EXTPROC_CONNECTION_DATA 下的 Key 和 SID 值。

EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(Key = EXTPROC1)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )

此条目必须始终有标注 EXTPROC_CONNECTION_DATA。此条目供数据库服务器通过进程间通信将函数调用发送到 extproc 使用。

保存更改并关闭 tnsnames.ora 文件。

打开 Oracle 服务器上的 listener.ora 文件。

更改所需的条目以设置监听器将接受其请求的服务器。

第一个示例针对 Windows 操作系统,ST_Geometry 和 ST_Raster 库位于名为 gislibs 的文件夹中:

LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = svr1.dmn1.com)(PORT = 1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = C:\oracle\product\10.2.0\db_1) (PROGRAM = extproc) (ENVS="EXTPROC_DLLS=C:\gislibs\st_shapelib.dll;C:\gislibs\libst_raster_ora.dll") ) )

此示例显示了 Linux 或 UNIX 服务器的条目,其中的 ST_Geometry 和 ST_Raster 库存储在 /arcgis/libs

LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = svr1.dmn1.com)(PORT = 1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /servit/oracle/product/10.2.0/db_1) (PROGRAM = extproc) (ENVS="EXTPROC_DLLS=/arcgis/libs/libst_shapelib.so:/arcgis/libs/libst_raster_ora.so") ) )

更改并保存 listener.ora 文件后,请重新启动 Oracle 监听器。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c9fee73cea9b67914a8e87f4a3fb54ab.html