博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SDO_Geometry相关学习(转载)
阅读量:6289 次
发布时间:2019-06-22

本文共 2018 字,大约阅读时间需要 6 分钟。

原文:http://www.cnblogs.com/zhangjun1130/archive/2010/12/07/1898785.html

一、判断某个图层是否为SDO_Geometry存储方式

     select DATA_TYPE from SYS.ALL_TAB_COLUMNS Where Column_Name ='SHAPE' and table_name='图层名'(今天试了下,并不能查到预期的结果)

     值等于SDO_GEOMETRY,为SDO_Geometry存储方式;

     值等于ST_GEOMETRY,为ST_Geometry存储方式;

      刚开始时可能使用 select t.layer_config from layers t 来查询图层的存储方式,但是这种方法是有缺陷的:layer_config字段 的DEFAULT这个值是根据你建第一个FeatureClass时用的是那种存储方式,例如你第一个FeatureClass是 SDO_Geometry存储方式,那么SDE中的所有用SDO_Geometry存储的图层layer_config值都为DEFAULT,而其他类型 的值为非DEFAULT。当然如果你第一次FeatureClass是采用二进制的话,那么二进制就为DEFAULT,而SDO_Geometry存储方 式的layer_config字段值就为SDO_Geometry。

    在Before/In ArcGIS 9.2 图层的默认存储为二进制,即为Long Raw。ArcGIS 9.3开始ESRI使用自己的ST_Geometry存储方式。

二、SDE数据库中表的相关说明

      MDRT_%表: R树索引表;

      GDB__%表: 系统表

三、关于SDO_Geometry中的shape类型:

CREATE TABLE mylake (

    feature_id NUMBER PRIMARY KEY,
    name VARCHAR2(32),
    shape MDSYS.SDO_GEOMETRY);

中的shape为MDSYS.SDO_GEOMETRY类型,即采用的是MDSYS方案中用户类型SDO_GEOMETRY。

Oracle 支持自定义的数据类型,你可以用数组,结构体或者带有构造函数,功能函数的类来定义自己的对象类型。这样的对象类型可以用于属性列的数据类型,也可以用来创建对象表。 而Oracle Spatial也正是基于此种特性所开发的一套空间数据处理系统。

oracle自定义的用户类型有三种:数组类型、对象类型、表类型,例如咱们用的SDO_GEOMETRY为对象类型,具体定义如下:

CREATE TYPE SDO_GEOMETRY AS OBJECT(

SDO_GTYPE NUMBER,                //表示几何实体的类型   //先是变量名称,后市变量类型 zhangjun here
SDO_SRID NUMBER,                  //用来表示坐标系(空间参考坐标系),与几何实体关联
SDO_POINT MDSYS.SDO_POINT_TYPE,//使用X,Y,Z属性值来定义对象类型,它们都是NUMBER类型,
  //如果SDO_GEOMETRY的SDO_ELEM_INFO及SDO_ORDINATES数组为
  //空则SDO_POINT为非空,X和Y值就是点几何实体的坐标值
SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY, //使用变长NUMBER数组类型来表示。该属性将告知如何解释SDO_ORDINATES里边的坐标值;
SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY   / /存储坐标值数组类型,形成空间对象的边界
);

跟具体的使用可以参考如下:

1 创建数据类型

create type t_air as object(id int ,name varchar(20));
2 创建表
create table aaa(
         id int ,person t_air);  //字段可以是分子,而不是原子 zhangjun here
3 插入数据

insert into aaa values(1,t_air(1,'23sdf'));
4 查询
select a.id ,a.persion.id,a.person.name from aaa a;
关于MDSYS用户和方案的学习:
     安装oracle自动生成的。
     MDSYS用户密码:MDSYS,在做一些关于MDSYS用户和方案操作之前需要对其进行解锁。
   用途:The Oracle Spatial and Oracle interMedia Locator administrator account Oracle。

转载于:https://www.cnblogs.com/khfang/p/5782639.html

你可能感兴趣的文章
让人抓头的Java并发(一) 轻松认识多线程
查看>>
从源码剖析useState的执行过程
查看>>
地包天如何矫正?
查看>>
中间件
查看>>
Android SharedPreferences
查看>>
css面试题
查看>>
Vue组建通信
查看>>
用CSS画一个带阴影的三角形
查看>>
前端Vue:函数式组件
查看>>
程鑫峰:1.26特朗.普力挺美元力挽狂澜,伦敦金行情分析
查看>>
safari下video标签无法播放视频的问题
查看>>
01 iOS中UISearchBar 如何更改背景颜色,如何去掉两条黑线
查看>>
对象的继承及对象相关内容探究
查看>>
Spring: IOC容器的实现
查看>>
Serverless五大优势,成本和规模不是最重要的,这点才是
查看>>
Nginx 极简入门教程!
查看>>
iOS BLE 开发小记[4] 如何实现 CoreBluetooth 后台运行模式
查看>>
Item 23 不要在代码中使用新的原生态类型(raw type)
查看>>
为网页添加留言功能
查看>>
JavaScript—数组(17)
查看>>