将shpfiles导入Oracle数据库的方法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
将shpfiles导入Oracle数据库的方法

将shpfiles导入Oracle数据库的方法   在做GIS工程时,我们经常用到ARCGIS这一GIS领域里最有名的软件,而ARCGIS最常用的文件类型就是shpfiles,它有三种格式的文件组成:shp、shx和dbf。同时GIS工程需要用到大量地理数据,因此选择良好的数据库也是至关重要的,而Oracle数据库在空间存储和查询方面有很强优势,因此就需要将shpfiles文件导入到Oracle数据库里存储。这时问题便来了,Oracle不能识别shpfiles文件,因此不能直接将其导入。就此问题我总结了一解决方法,步骤如下:   1.分割数据文件: 首先我们要把shp文件转换分割成Oracle可以导入的数据库文件,这个转换可以使用Oracle提供的一个现成的工具shp2sdo,下载后把此文件复制到PATH变量包含的目录下,如我的Oracle客户端安装后自动注册的环境变量是 path D:\Oracle\product\11.2.0\dbhome_1\BIN;运行shp2sdo,输入shpfiles文件绝对路径(不带扩展名),在输入表名时若不写则生成在原数据文件夹里,若只写文件名(无路径)则生成在Oracle默认文件夹里(D:\Oracle\product\11.2.0\dbhome_1\BIN),所以建议输入绝对路径.执行之后生成三个文件ctl,dat,sql(名字跟前面表名一致)。 2.生成表并建立索引: 在DOS运行此命令(或直接打开D:\Oracle\product\11.2.0\dbhome_1\BIN里的sqlplus工具):sqlpluspgg/pgg@orcl SQL@[d:\data\name].sql SQLCREATE Index [NAME]_idx ON [NAME] (GEOM) INDEXTYPE is MDSYS.SPATIAL_INDEX; SQLquit 3.载入数据: sqlldr scott/[password] control=D:\data\[name].ctl 不行的话修改ctl文件中关于dat文件的路径,要加双引号! 到这里我们已经将shpfiles文件导入到oracle数据库中,可以通过oracle的界面工具developer来查看。 ? 另外还需要建立一个视图,具体作用说不大清楚,但在启动程序发布地图的时候会用到,如果没有此视图文件会出现图层无法map的错误,建立过程如下: ?SQL CREATE OR REPLACE VIEW CS_SRS AS ?2 SELECT CS_NAME,SRID,AUTH_SRID,AUTH_NAME,WKTEXT,CS_BOUNDS ?3 FROM MDSYS.CS_SRS ?4 / 另外如果自己手工新建图层的话,过程如下: ?DROP TABLE BZXX; ?CREATE TABLE BZXX( ?GID VARCHAR2(32) NOT NULL, ?NAME VARCHAR2(20), ?BZNR VARCHAR2(400), ?BEIZ VARCHAR2(600), ?COOR MDSYS.SDO_GEOMETRY ?); ?ALTER TABLE BZXX ?ADD CONSTRAINT PK_BZXX PRIMARY KEY (GID); ?DELETE FROM USER_SDO_GEOM_METADATA ?WHERE TABLE_NAME = BZXX AND COLUMN_NAME = COOR ; ?INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) ?VALUES (BZXX, COOR, ???? MDSYS.SDO_DIM_ARRAY ?????? (MDSYS.SDO_DIM_ELEMENT(X, -180.000000000, 180.000000000, 0.500000000), ??????? MDSYS.SDO_DIM_ELEMENT(Y, -90.000000000, 90.000000000, 0.500000000) ????? ), ?8307); ?COMMIT; ?CREATE INDEX BZXX_GEOM_INDEX ON BZXX(COOR) ?????? INDEXTYPE IS MDSYS.SPATIAL_INDEX ?????? PARAMETERS(SDO_INDX_DIMS=2, LAYER_GTYPE=POINT); ************************以下为shp2sto使用说明及参数详解************** Example usage of t

文档评论(0)

tangtianbao1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档