SDE 包含到 oracle函数

SDE函数包中包含大量的空间计算分析函数,是我们做空间相关分析的一把利刃(目前好像我们只有这一把),有关SDE函数的使用,请见我空间另外的一篇帖子的附件.

按照通常教程,过程是这样的
1.找到listener.ora
2.找到SID_LIST_LISTENER
3.在(PROGRAM = extproc)下一行添加
(ENVS="EXTPROC_DLLS= F:\ArcGIServer\ArcSDE\ArcSDE\ora10gexe\bin\st_shapelib.dll"),路径请自己改.
4.重启监听服务

但是会遇到失败的情况,我只遇到两种:
1.监听服务无法启动
2.监听服务启动成功,但是SDE函数还是无法链接外部PRC
3.在linux和unix中,监听服务启动成功,但是SDE函数还是无法链接外部PRC

针对以上情况:
1.添加的EXTPROC_DLLS一定在(PROGRAM = extproc)的下一行,也就是一个回车后,最好用记事本编辑,先关闭实例服务,重启监听服务才会成功,另外,st_shapelib.dll的路径中如果包含中文,有待其他同学去尝试.
2.这说明添加的EXTPROC_DLLS没有起作用,由于我用的是WIN7,所以我又复查了一边,发现一个问题:
    win7安装的oracle10g, listener.ora中的 LISTENER块,对应IPC协议的 key=EXTPROC0; tnsnames.ora中的 EXTPROC_CONNECTION_DATA, key=EXTPROC1
把这两个key统一,我是把, listener.ora中的 LISTENER, key改为EXTPROC1.重启监听服务及实例服务即可,一定要重启实例服务,否则你的tns都会坏掉.
3.还需要在SDE用户下执行如下SQL,但是windows平台是不用的,有可能是SDE POST的时候做好了,请高人指点:
Sql代码 复制代码  收藏代码
  1. CREATE OR REPLACE LIBRARY st_shapelib AS '<full_path>\st_shapelib.dll'  
CREATE OR REPLACE LIBRARY st_shapelib AS '<full_path>\st_shapelib.dll'


至此问题解决了,希望其他同学积极补充.

你可能感兴趣的:(Oracle函数)