您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Oracle数据库完全入库过程
第一部分简单空间数据入库1.利用shp2sdo分割shapefile文件。假设shapefile文件(集贸市场)和shp2sdo工具存储路径为C:\data①打开命令符窗口(开始→运行→cmd),设置当前目录为存放.shp文件的目录。在命令行窗口中输入:cdC:\data②运行SHP2SDO.EXE,参数1:SHAPE文件名(不带扩展名),参数2:ORACLE中的表名其他参数,默认运行后生成3中文件(*.SQL,*.DAT,*.CTL)在命令行中输入:shp2sdo集贸市场jimaoshichang2.执行SQL语句。方法一:①重新打开一个命令窗口(开始→运行→cmd)②sqlplusscott/tiger@orcl517,连接到数据库。③打开jimaoshichang.sql,复制粘贴,执行SQL语句。DROPTABLEJIMAOSHICHANG;CREATETABLEJIMAOSHICHANG(区县VARCHAR2(10),乡镇名VARCHAR2(10),村名VARCHAR2(10),企业VARCHAR2(50),GEOMMDSYS.SDO_GEOMETRY);DELETEFROMUSER_SDO_GEOM_METADATAWHERETABLE_NAME='JIMAOSHICHANG'ANDCOLUMN_NAME='GEOM';INSERTINTOUSER_SDO_GEOM_METADATA(TABLE_NAME,COLUMN_NAME,DIMINFO)VALUES('JIMAOSHICHANG','GEOM',MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('X',39373833.909274168,39519763.519715697,0.000000050),MDSYS.SDO_DIM_ELEMENT('Y',4369176.981283660,4507295.457671791,0.000000050)));COMMIT;方法二:在SQLPLUS中运行jimaoshichang.sql。3.执行控制语句①打开命令符窗口(开始→运行→cmd),设置当前目录为存放.shp文件的目录。在命令行窗口中输入:cdC:\data②执行sqlldrscott/tiger@orcl517control=jimaoshichang.ctl4.转换空间数据的数据格式执行下列sql语言:EXECUTESDO_MIGRATE.TO_CURRENT('jimaoshichang','GEOM');5.创建空间索引执行下列sql语言:CREATEINDEXjimaoshichangsuoyinONjimaoshichang(GEOM)INDEXTYPEISMDSYS.SPATIAL_INDEX;第二部分空间数据迁移1.创建一张新表,用来存放jimaoshichang表中的数据DROPTABLEMARKET;CREATETABLEMARKET(C_MARKETNAMEVARCHAR2(50),G_FEATURESHAPEMDSYS.SDO_GEOMETRY);2.将描述数据表(也就是图层)的元数据写入元数据表。DELETEFROMUSER_SDO_GEOM_METADATAWHERETABLE_NAME='MARKET'ANDCOLUMN_NAME='G_FEATURESHAPE';INSERTINTOUSER_SDO_GEOM_METADATA(TABLE_NAME,COLUMN_NAME,DIMINFO)VALUES('MARKET','G_FEATURESHAPE',MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('X',39373833.909274168,39519763.519715697,0.000000050),MDSYS.SDO_DIM_ELEMENT('Y',4369176.981283660,4507295.457671791,0.000000050)));3.往新建的数据表中插入数据insertintoMARKET(C_MARKETNAME,G_FEATURESHAPE)select企业,GEOMfromjimaoshichang;4.创建索引CREATEINDEXGIDX_GT_M_MARKETONMARKET(G_FEATURESHAPE)INDEXTYPEISMDSYS.SPATIAL_INDEX;附:5.CoGisMap的元数据表定义CREATETABLEDBSCHEMA_OGIS_FEATURE_TABLES(GEOM_TABLE_NAMEVARCHAR2(129byte)NOTNULL,GEOM_TABLE_TYPEVARCHAR2(129byte)NOTNULL,GEOM_COLUMN_NAMEVARCHAR2(129byte)NOTNULL,GEOM_TYPENUMBER(10)NOTNULL,GEOM_EXTENTMDSYS.SDO_GEOMETRYDEFAULTMDSYS.SDO_GEOMETRY(2003,--2-dimensionalpolygonNULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),--onerectangle(1003=exterior)MDSYS.SDO_ORDINATE_ARRAY(0,0,1,1))NOTNULL,CONSTRAINTKEY_1_1_1PRIMARYKEY(GEOM_TABLE_NAME))6在CoGisMap的元数据表中填入元数据。执行脚本:INSERTINTODBSCHEMA_OGIS_FEATURE_TABLES(GEOM_TABLE_NAME,GEOM_TABLE_TYPE,GEOM_COLUMN_NAME,GEOM_TYPE)VALUES('GT_M','TABLE','GEOM',4)至此,这个空间数据表就可以在控件中显示了。附件关于空间数据表的创建和删除--创建空间数据表的脚本:--表中要有一列定义为空间数据存储结构(MDSYS.SDO_GEOMETRY)。CREATETABLEDEMO.TEST_GEOM(ObjectIDNUMBER,RecordIDNUMBER,OperateCHAR(2),ChangeDateDATE,GEOMMDSYS.SDO_GEOMETRY);--创建空间数据表之后,要将描述数据表(也就是图层)--的元数据写入元数据表。--各列含义分别为:--空间数据表的名称,--空间所在列的名称,--空间数据表(图层)的维度信息,--参考坐标系索引。--其中图层维度信息包含2~4条记录,记录的各列含义如下:--维度名称('X','Y'或'Z')--最小值(NUMBER)--最大值(NUMBER)--容差(NUMBER)INSERTINTOUSER_SDO_GEOM_METADATAVALUES('TEST_GEOM','GEOM',MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('X',1144.804047,3762.220078,0.005),MDSYS.SDO_DIM_ELEMENT('Y',66.337745,2894.969755,0.005)),NULL--SRID);--如何删除空间数据表(图层)?--分为两步:1、删除表,2、删除元数据。--删除表DROPTABLETEST_GEOM;--删除元数据DELETEFROMUSER_SDO_GEOM_METADATAWHERETABLE_NAME='TEST_GEOM'ANDCOLUMN_NAME='GEOM';
本文标题:Oracle数据库完全入库过程
链接地址:https://www.777doc.com/doc-12405 .html