将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
相关文章
|
11天前
|
SQL Oracle 关系型数据库
一些非常有用的Oracle SQL
一些非常有用的Oracle SQL
18 4
|
14天前
|
SQL Oracle 关系型数据库
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
|
14天前
|
存储 SQL Oracle
oracle 存储过程导出sql语句 导出为文件
oracle 存储过程导出sql语句 导出为文件
|
14天前
|
SQL Oracle 关系型数据库
oracle数据库与sql
Oracle数据库和SQL之间存在一些关键差异。以下是对这些差异的详细解释: 1. **开放性**: * Oracle数据库具有显著的开放性,它能在所有主流平台上运行,这为用户提供了选择最
|
26天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之如何SQL同步数据到Oracle数据库中
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL游标自定义异常:数据探险家的“专属警示灯”
【4月更文挑战第19天】Oracle PL/SQL中的游标自定义异常是处理数据异常的有效工具,犹如数据探险家的警示灯。通过声明异常名(如`LOW_SALARY_EXCEPTION`)并在满足特定条件(如薪资低于阈值)时使用`RAISE`抛出异常,能灵活应对复杂业务规则。示例代码展示了如何在游标操作中定义和捕获自定义异常,提升代码可读性和维护性,确保在面对数据挑战时能及时响应。掌握自定义异常,让数据管理更从容。
|
1月前
|
SQL Oracle 安全
Oracle的PL/SQL游标异常处理:从“惊涛骇浪”到“风平浪静”
【4月更文挑战第19天】Oracle PL/SQL游标异常处理确保了在数据操作中遇到的问题得以优雅解决,如`NO_DATA_FOUND`或`TOO_MANY_ROWS`等异常。通过使用`EXCEPTION`块捕获并处理这些异常,开发者可以防止程序因游标问题而崩溃。例如,当查询无结果时,可以显示定制的错误信息而不是让程序终止。掌握游标异常处理是成为娴熟的Oracle数据管理员的关键,能保证在复杂的数据环境中稳健运行。
|
1月前
|
SQL Oracle 安全
Oracle的PL/SQL异常处理方法:守护数据之旅的“魔法盾”
【4月更文挑战第19天】Oracle PL/SQL的异常处理机制是保障数据安全的关键。通过预定义异常(如`NO_DATA_FOUND`)和自定义异常,开发者能优雅地管理错误。异常在子程序中抛出后会向上传播,直到被捕获,提供了一种集中处理错误的方式。理解和善用异常处理,如同手持“魔法盾”,确保程序在面对如除数为零、违反约束等挑战时,能有效保护数据的完整性和程序的稳定性。
|
1月前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL中FOR语句循环游标的奇幻之旅
【4月更文挑战第19天】在Oracle PL/SQL中,FOR语句与游标结合,提供了一种简化数据遍历的高效方法。传统游标处理涉及多个步骤,而FOR循环游标自动处理细节,使代码更简洁、易读。通过示例展示了如何使用FOR循环游标遍历员工表并打印姓名和薪资,对比传统方式,FOR语句不仅简化代码,还因内部优化提升了执行效率。推荐开发者利用这一功能提高工作效率。
|
1月前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL游标属性:数据的“导航仪”与“仪表盘”
【4月更文挑战第19天】Oracle PL/SQL游标属性如同车辆的导航仪和仪表盘,提供丰富信息和控制。 `%FOUND`和`%NOTFOUND`指示数据读取状态,`%ROWCOUNT`记录处理行数,`%ISOPEN`显示游标状态。还有`%BULK_ROWCOUNT`和`%BULK_EXCEPTIONS`增强处理灵活性。通过实例展示了如何在数据处理中利用这些属性监控和控制流程,提高效率和准确性。掌握游标属性是提升数据处理能力的关键。