当前位置: 首页 > news >正文

Oracle空间查询 ORA-28595

可使用数据库管理系统 (DBMS) 的结构化查询语言 (SQL)、数据类型和表格式来处理地理数据库或安装了 ST_Geometry 类型的数据库中所存储的信息。

例如,在ArcMap中我们使用"相交"工具进行空间操作;ArcObject接口里用ITopologicalOperator.Intersect来实现。现在,我们可以脱离接口,实现数据的空间操作,从性能和架构的角度来说,这值得深入研究。在Sql Server中用STIntersects方法,在Oracle中使用SDO_FILTER(注意这里不叫SDO_Intersects哈),在ArcGIS中用sde.st_intersects方法。

Sql Server方法:https://msdn.microsoft.com/zh-CN/library/bb933960.aspx

Oracle方法:https://docs.oracle.com/cd/B28359_01/appdev.111/b28400/sdo_operat.htm#SPATL110

ArcGIS方法:http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/006z000000ws000000

为了方便重用,我们使用了ArcGIS中的方法。但遇到一个配置错误!

错误

执行ST_Geometry

"ERROR at line 1:

ORA-28595: Extproc agent : Invalid DLL Path

ORA-06512: at "SDE.ST_GEOMETRY_SHAPELIB_PKG", line 170

ORA-06512: at "SDE.ST_RELATION_OPERATORS", line 303"

即语法没有错误,只是不能调用DLL,在 Oracle 中,ST_Geometry 和 ST_Raster 的 SQL 函数使用通过 Oracle 的外部过程代理(即 extproc)访问的共享库。Oracle 必须能够访问这些库。因此,这些库必须存在于 Oracle 服务器上,并且必须通过 Oracle 的外部过程框架调用它们。

显示是没找到这个些dll,按照官网的解决方法,总是启动不了oracle监听服务。

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

解决

1.找到dll,其实它依靠两个dll,一是st_shapelib.dll,ST_Geometry的库,二是libst_raster_ora.dll,ST_Raster的库。它们的路径位于:

ArcSDE下的路径:

C:\Program Files (x86)\ArcGIS\ArcSDE\ora10gexe\bin\st_shapelib.dll;
C:\Program Files (x86)\ArcGIS\ArcSDE\ora10gexe\bin\libst_raster_ora.dll

  

ArcDeskop下的路径

D:\Program Files\ArcGIS\Desktop10.4\DatabaseSupport\Oracle\Windows64\st_shapelib.dll;
D:\Program Files\ArcGIS\Desktop10.4\DatabaseSupport\Oracle\Windows64\ libst_raster_ora.dll;

  

2.新建环境变量:新建一个系统环境变量

变量名:EXTPROC_DLLS

变量值:两个dll的全路径,中间用分号隔开,如C:\sdedll\st_shapelib.dll;C:\sdedll\libst_raster_ora.dll

(这里是将两个dll添加到新建的sdedll文件夹中的,因为服务器上可能没有安装sde服务器)

3.重启服务:重新启动oracle监听服务OracleOraDb10g_home1TNSListener

参考

http://support.esri.com/technical-article/000009074

http://p385579058.iteye.com/blog/1042187

http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/006z0000001w000000/

转载于:https://www.cnblogs.com/liweis/p/6758071.html

相关文章:

  • 优化代码,有效使用内存总结
  • Bootstrap 介绍
  • Liunx笔记:zabbix编译安装
  • 这个时代会残酷惩罚不肯改变的人
  • POJ 3155 Hard Life(最大密度子图)
  • HDU 2588 GCD amp;amp; GCD问题总结
  • pymongo.errors.OperationFailure: Authentication failed.
  • Oracle 关闭(shutdown immediate)时hang住
  • iOS App 上架流程图文教程
  • AngularJS+ui.bootstrap实现图片轮播
  • poj1860--Currency Exchange
  • Linux日志2
  • 多浏览器支持ActiveX控件
  • 线程的业务原子性
  • route
  • 【翻译】babel对TC39装饰器草案的实现
  • avalon2.2的VM生成过程
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • DOM的那些事
  • ECMAScript入门(七)--Module语法
  • es的写入过程
  • GitUp, 你不可错过的秀外慧中的git工具
  • Invalidate和postInvalidate的区别
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Odoo domain写法及运用
  • passportjs 源码分析
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • 分享一份非常强势的Android面试题
  • 前端临床手札——文件上传
  • 入门到放弃node系列之Hello Word篇
  • 三分钟教你同步 Visual Studio Code 设置
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 微信小程序--------语音识别(前端自己也能玩)
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • k8s使用glusterfs实现动态持久化存储
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 阿里云API、SDK和CLI应用实践方案
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (42)STM32——LCD显示屏实验笔记
  • (5)STL算法之复制
  • (8)STL算法之替换
  • (LeetCode C++)盛最多水的容器
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (二)hibernate配置管理
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (一)认识微服务
  • (原創) 未来三学期想要修的课 (日記)
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)拼包函数及网络封包的异常处理(含代码)