您的当前位置:首页64位系统配置ST_Geometry函数

64位系统配置ST_Geometry函数

2020-05-03 来源:智榕旅游
访问存储在oracle中的ST_Geometry类型数据的SQL函数通过扩展oracle的external procedure agent或者extproc来实现,因此,直接使用这些SQL函数需要配置oracle的listener,让oracle能够找到这些扩展库。如果使用SDE读取这些数据,则不需要配置。

这些对ST_Geometry类型数据进行操作的函数是用PL/SQL实现的,在PL/SQL中其实是转调的使用c语言编写的外部扩展库(ST_SHAPELIB)。

如果在64位的系统上安装了32位的oralce10g,配置ST_Geometry后,在重启oracle服务的时候,我们发现oracle监听启动后会自动停止。是什么原因呢?有什么办法可以解决这个问题呢?

在安装ArcSDE时,路径是放在X86目录下,问题就出于此,我们需要将安装目录下的相关东西拷到合适的位置,具体操作如下:

1.将C:\\Program Files (x86)\\ArcGIS\\ArcSDE\\ora10gexe\\bin\\st_shapelib.dll 拷贝至

C:\\Program Files\\ArcGIS\\ArcSDE\\ora10gexe\\bin\\st_shapelib.dll

2.修改库路径 create

or

replace

library

st_shapelib

as

'C:\\Program

Files\\ArcGIS\\ArcSDE\\ora10gexe\\bin\\st_shapelib.dll';

3.查看库路径

select * from user_libraries;

------------------------------------------------------------------------ 4.listener.ora

添加(ENVS=\"EXTPROC_DLLS=ANY\")

-------------------------------------------------------------------------- SID_LIST_LISTENER = (SID_LIST = (SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = d:\\oracle\\product\\10.2.0\\db_1) (PROGRAM = extproc) (ENVS=\"EXTPROC_DLLS=ANY\") ) ) LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

(ADDRESS = (PROTOCOL = TCP)(HOST = dxth4.bjdxth.com)(PORT = 1521)) ) )

-----------------------------------------------------------------------------

5.tnsnames.ora

添加(ADDRESS = (PROTOCOL = TCP)(HOST = dxth4.bjdxth.com)(PORT = 1521))

------------------------------------------------------------------------------- EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

(ADDRESS = (PROTOCOL = TCP)(HOST = dxth4.bjdxth.com)(PORT = 1521)) )

(CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )

--------------------------------------------------------------------------------- 6.listener.ora中的KEY值要和tnsnames.ora中的KEY一致 7.

lsnrctl stop

lsnrctl start

因篇幅问题不能全部显示,请点此查看更多更全内容