将shp数据存储到oracle或者sql server 2008中

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: /Files/zuiyirenjian/将shp数据存储在oracle下.rar ArcGIS 10 中有一个新的功能 query layer,用这个东西就可以将存储在其他关系型数据库里面的数据整合到ArcMap中,看来ESRI越来越开放了,我们知道,空间数据的存储有点复杂,不同的GIS厂商都有自己管理数据的结构,比如超图和MapGIS就和ESRI的空间数据结构不一样,同样关系型数据库也有自己的空间数据存储结构,Oracle提供了SDO_GEOMETYR和ST_GEOMETYR,注意这个和ESRI提供的ST_GEOMETYR是不一样的。

/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 访问这个数据 , 我的 ArcGIS 10 的, Oracle 11 R2 ,计算机是 64 win7 但是就死活连接不上,最终和同事认为是一个 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 中的数据



相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
3月前
|
SQL Oracle 关系型数据库
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
83 0
|
1月前
|
SQL Oracle 关系型数据库
Oracle系列十一:PL/SQL
Oracle系列十一:PL/SQL
|
1月前
|
SQL Oracle 关系型数据库
Oracle系列之八:SQL查询
Oracle系列之八:SQL查询
|
3月前
|
SQL 存储 Oracle
oracle如何定期备份数据库sql文件
【1月更文挑战第7天】oracle如何定期备份数据库sql文件
58 8
|
3月前
|
SQL Oracle 关系型数据库
Oracle PL/SQL基础知识及应用案例
Oracle PL/SQL基础知识及应用案例
33 0
|
3月前
|
SQL Oracle 关系型数据库
oracle查询数据库参数sql语句
oracle查询数据库参数sql语句
|
3月前
|
SQL Oracle 关系型数据库
oracle查询数据库状态sql语句
oracle查询数据库状态sql语句
|
3月前
|
SQL Oracle 关系型数据库
Oracle PL/SQL 第五章–复合类型
Oracle PL/SQL 第五章–复合类型
|
3月前
|
SQL 存储 Oracle
Oracle PL/SQL 第四章--数据类型
Oracle PL/SQL 第四章--数据类型
|
3月前
|
SQL Oracle 关系型数据库
Oracle PL/SQL 第三章--运算符与表达式
Oracle PL/SQL 第三章--运算符与表达式

推荐镜像

更多