zoukankan      html  css  js  c++  java
  • 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)ArcGISArcSDEora10gexeinst_shapelib.dll;
    C:Program Files (x86)ArcGISArcSDEora10gexeinlibst_raster_ora.dll
    

      

    ArcDeskop下的路径

    D:Program FilesArcGISDesktop10.4DatabaseSupportOracleWindows64st_shapelib.dll;
    D:Program FilesArcGISDesktop10.4DatabaseSupportOracleWindows64 libst_raster_ora.dll;
    

      

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

    变量名:EXTPROC_DLLS

    变量值:两个dll的全路径,中间用分号隔开,如C:sdedllst_shapelib.dll;C:sdedlllibst_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/

  • 相关阅读:
    fort循环
    while
    函数和数组
    case
    init进程
    权限安全:堡垒机部署实践
    tcp首部当中seq和ack的增长规律
    VRRP
    MSTP
    字符集专题
  • 原文地址:https://www.cnblogs.com/liweis/p/6758071.html
Copyright © 2011-2022 走看看