zoukankan      html  css  js  c++  java
  • 将shp数据存储到oracle或者sql server 2008中

    /Files/zuiyirenjian/将shp数据存储在oracle下.rar

    ArcGIS 10 中有一个新的功能 query layer,用这个东西就可以将存储在其他关系型数据库里面的数据整合到ArcMap中,看来ESRI越来越开放了,我们知道,空间数据的存储有点复杂,不同的GIS厂商都有自己管理数据的结构,比如超图和MapGIS就和ESRI的空间数据结构不一样,同样关系型数据库也有自己的空间数据存储结构,Oracle提供了SDO_GEOMETYRST_GEOMETYR,注意这个和ESRI提供的ST_GEOMETYR是不一样的。
    Oracle提供了一个shp2sdo的工具,将shp数据存储成自己的SDO_GEOMETYR,在这里我操作一下。我的shp数据CUN2
    这是在ArcMap下看到的



    将下载到的shp2sdo添加到oraclebin目录下,为什么?因为oracle安装的时候配置了一个环境变量path,在这里我不多介绍。



    cmd 进入shp文件的目录,我的shp数据在计算机上的位置





    Esriquery oracle中的表名,我采用默认的。
    下面多了三个文件




    Ctl为控制文件,里面有dat数据的地址,dat数据含有我们的数据

    我用scott用户连接到oracle数据库,然后做如下操作,执行sql语句,可以打开看看,不要因为看到第1行出现错误,就认为这个错了,原因呢,在这里我不说了,sql语句里面可以看到。Sql语句其实是创建了一个表。



    Sql语句其实是创建了一个表,但是还没装在数据呢?数据是在dat中,装载控制文件,控制文件记录了dat数据的位置。






    创建一个空间索引
    SQL>CREATE Index esriquery_index ON esriquery (GEOM)INDEXTYPE IS MDSYS.SPATIAL_INDEX;
    oracle中看到的




    本来是要ArcMap中直接利用Query Layer 访问这个数据,我的ArcGIS10的,Oracle11R2,计算机是64win7但是就死活连接不上,最终和同事认为是一个BUG,同事说装一个32位的客户端就可以了,我看到他们确实可以,而且我用其他的都可以连接上,从命令端或者sql developer都可以,但是ArcMap不行,没法,我将数据又存储在sql server2008中,可以,通过query layer可以访问,至于Oracle的那个问题。我还在努力。

    在这里说一下,我找到的一个工具是将shp存储在sql server2008中,估计不是官方的,所以如果字段是汉字的话,会有乱码,用英文字段名称没问题的。
    Shp2sql server2008下载地址
    http://www.sharpgis.net/page/SQL-Server-2008-Spatial-Tools.aspx
    以下是用query layer访问到sql server 2008 中的数据



  • 相关阅读:
    重载运算与类型转换——函数调用运算符,重载、类型转换与运算符
    重载运算与类型转换——基本概念,输入和输出运算符,算术和关系运算符,赋值运算符,下标运算符,递增和递减运算符,成员访问运算符
    拷贝控制——拷贝控制和资源管理,交换操作,对象移动
    拷贝控制——拷贝、赋值与销毁
    动态内存——动态数组
    middlegenide  eclipse 的插件
    jquery
    avg
    dom4j
    dom4j  简单使用
  • 原文地址:https://www.cnblogs.com/zuiyirenjian/p/1812146.html
Copyright © 2011-2022 走看看