成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle Spatial建表學習步驟詳解

數據庫 Oracle
本文我們主要介紹了Oracle Spatial建表學習的步驟,通過一個實例按照步驟逐步地進行解析,希望能夠對您有所幫助。

Oracle Spatial建表學習的步驟是本文我們主要要介紹的內容,步驟如下:

Step1. 創建一張表,其中shape用來存放空間數據

  1. CREATE TABLE mylake (  
  2. feature_id NUMBER PRIMARY KEY,  
  3. name VARCHAR2(32),  
  4. shape MDSYS.SDO_GEOMETRY); 

Step2. 在user_sdo_geom_metadata 表中插入新記錄,用于描述空間字段

  1. INSERT INTO user_sdo_geom_metadata VALUES (  
  2. 'mylake',    //---表名  
  3.     'shape',    //---字段名  
  4.     MDSYS.SDO_DIM_ARRAY(     
  5. MDSYS.SDO_DIM_ELEMENT('X', 0, 100, 0.05),    //---X維最小,***值和容忍度。  
  6.         MDSYS.SDO_DIM_ELEMENT('Y', 0, 100, 0.05)    //---Y維最小,***值和容忍度 NULL    //---坐標系,缺省為笛卡爾坐標系  
  7. ); 

Step3. 創建空間索引

  1. CREATE INDEX mylake_idx ON mylake(shape)   
  2. INDEXTYPE IS MDSYS.SPATIAL_INDEX 

Step4. 插入空間數據

Oracle Spatial用MDSYS.SDO_GEOMETRY來存儲空間數據,定義為:

  1. CREATE TYPE sdo_geometry AS OBJECT (  
  2. SDO_GTYPE NUMBER,  
  3. SDO_SRID NUMBER,  
  4. SDO_POINT SDO_POINT_TYPE,  
  5. SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY,  
  6. SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY); 

SDO_SRID:坐標系,NULL為笛卡爾坐標系。 SDO_POINT:Oracle Spatial也可定義單個的點,SDO_POINT的定義: CREATE TYPE sdo_point_type AS OBJECT (X NUMBER,Y NUMBER,Z NUMBER); 如果是二維,Z為NULL。 SDO_ELEM_INFO:每三個值描述一個元素。 ***個值:***個頂點在SDO_ORDINATES_ARR開始位置 。第二個值:元素類型 。第三個值:頂點連接方式:1-通過直線連接,2-通過圓弧連接:定義為CREATE TYPE sdo_elem_info_array AS VARRAY (1048576) of NUMBER; SDO_ORDINATES:幾何圖形所有頂點列表。定義為    為CREATE TYPE sdo_ordinate_array AS VARRAY (1048576) of NUMBER;  

// 插入包含一個島嶼的湖泊

  1. INSERT INTO mylake VALUES(  
  2. 10,   
  3. 'Lake Calhoun',   
  4. MDSYS.SDO_GEOMETRY(  
  5. 2003,  
  6. NULL,  
  7. NULL,  
  8. MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1, 19,2003,1),  
  9. MDSYS.SDO_ORDINATE_ARRAY(0,0, 10,0, 10,10, 0,10, 0,0, 4,4, 6,4, 6,6, 4,6, 4,4)  
  10. )); 

// 插入兩艘小船

  1. INSERT INTO mylake VALUES(  
  2. 11,   
  3. 'The Windswept',   
  4. MDSYS.SDO_GEOMETRY(  
  5. 2003,  
  6. NULL,  
  7. NULL,  
  8. MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1),  
  9. MDSYS.SDO_ORDINATE_ARRAY(2,2, 3,2, 3,2, 2,3, 2,2) ); INSERT INTO mylake VALUES(  
  10. 12,   
  11. 'Blue Crest',   
  12. MDSYS.SDO_GEOMETRY(  
  13. 2003,  
  14. NULL,  
  15. NULL,  
  16. MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1),  
  17. MDSYS.SDO_ORDINATE_ARRAY(7,7, 8,7, 8,7, 7,8, 7,7) ); 

Step4. 查詢 Oracle Spatial查詢數據包括二個處理過程:1.只通過索引查詢候選項。通過函數SDO_FILTER實現:SDO_FILTER(geometry1 MDSYS.SDO_GEOMETRY, geometry2 MDSYS.SDO_GEOMETRY, params VARCHAR2) geometry1: 必須是被索引的幾何數據 geometry2:不一定是表中的空間字段,也不要求被索引 params:Filter類型         querytype=WINDOW:geometry2不要求來自表 querytype=JOIN:geometry2必須來自表。

  1. SELECT name boat_name  
  2. FROM mylake t  
  3. WHERE feature_id = 12 
  4. AND SDO_FILTER(t.shape, mdsys.sdo_geometry(2003,NULL,NULL,  
  5. mdsys.sdo_elem_info_array(1,1003,1),  
  6. mdsys.sdo_ordinate_array(2,2, 5,2, 5,5, 2,5, 2,2)),'querytype=WINDOW') = 'TRUE';  

// 選擇在定義矩形內的所有小船

  1. SELECT name boat_name  
  2. FROM mylake t  
  3. WHERE feature_id = 12 
  4. AND SDO_FILTER(t.shape, mdsys.sdo_geometry(2003,NULL,NULL,  
  5. mdsys.sdo_elem_info_array(1,1003,1),  
  6. mdsys.sdo_ordinate_array(2,2, 5,2, 5,5, 2,5, 2,2)),  
  7. 'querytype=WINDOW') = 'TRUE'  
  8. AND SDO_RELATE(t.shape, mdsys.sdo_geometry(2003,NULL,NULL,  
  9. mdsys.sdo_elem_info_array(1,1003,1),  
  10. mdsys.sdo_ordinate_array(2,2, 5,2, 5,5, 2,5, 2,2)),  
  11. 'masktype=INSIDE querytype=WINDOW') = 'TRUE

// masktype可聯合使用

  1. SELECT feature_id id  
  2. FROM mylake t  
  3. WHERE feature_id = 12 
  4. AND SDO_FILTER(t.shape, mdsys.sdo_geometry(2003,NULL,NULL,  
  5. mdsys.sdo_elem_info_array(1,1003,1),  
  6. mdsys.sdo_ordinate_array(2,2, 5,2, 5,5, 2,5, 2,2)),  
  7. 'querytype=WINDOW') = 'TRUE'  
  8. AND SDO_RELATE(t.shape, mdsys.sdo_geometry(2003,NULL,NULL,  
  9. mdsys.sdo_elem_info_array(1,1003,1),  
  10. mdsys.sdo_ordinate_array(2,2, 5,2, 5,5, 2,5, 2,2)),  
  11. 'masktype=INSIDE+TOUCH querytype=WINDOW') = 'TRUE

關于Oracle Spatial建表學習的相關知識就介紹到這里了,希望本次的介紹能夠對您有所收獲!

【編輯推薦】

  1. Star Schema的設計思路與總結
  2. MySQL性能分析及explain的使用
  3. Oracle數據庫悲觀鎖與樂觀鎖詳解
  4. SQL Server多表查詢優化方案總結
  5. Oracle執行計劃不走索引的原因總結
責任編輯:趙鵬 來源: 火魔網
相關推薦

2009-11-17 10:40:45

2009-11-17 10:48:22

Oracle Spat

2009-11-17 10:20:01

Oracle Spat

2010-04-16 12:57:20

Spatial數據加密

2011-08-29 13:40:12

Oracle 10g創建表空間

2010-04-16 14:48:27

Oracle Spat

2010-05-10 10:06:45

Oracle查詢表名

2010-04-14 09:33:58

Oracle Spat

2009-11-24 17:20:48

Oracle查看用戶表

2010-09-28 09:08:40

Oracle

2010-05-07 12:35:05

Oracle spat

2010-03-29 11:31:45

2010-04-16 13:52:03

Oracle緩存表

2011-02-25 14:52:10

Proftpd建表

2010-04-01 15:51:17

Oracle ebs

2010-04-22 12:07:37

Oracle Spat

2010-03-29 11:06:22

Oracle Spat

2010-04-08 15:59:50

Oracle undo

2010-02-24 09:47:25

Oracle手動創建數

2010-10-15 10:14:09

Mysql建表
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 新超碰97 | 黄色网址在线播放 | 亚洲人成一区二区三区性色 | 成人网在线观看 | 中文字幕在线观看www | 国产日韩欧美一区二区在线播放 | 色婷婷激情 | 性色网站| 日韩毛片在线免费观看 | 中文字幕人成乱码在线观看 | 成人免费xxxxx在线视频 | 中文字幕在线欧美 | 欧美精品一区二区三区在线播放 | 毛片免费看 | 中文字幕精品一区二区三区精品 | 国产精品欧美一区二区 | 久久久蜜桃一区二区人 | 免费观看日韩精品 | 国产精品美女视频 | 激情欧美一区二区三区 | 一级黄色毛片 | 999久久 | 亚洲精品国产综合区久久久久久久 | 精品久久久久久久久久久久久久 | 欧美日日 | 蜜月aⅴ国产精品 | 久久一区精品 | 少妇一级淫片免费放播放 | 日韩一区二区三区在线播放 | 综合国产 | 日韩中文字幕免费在线观看 | 欧美成人猛片aaaaaaa | 91看片在线 | 免费一级片 | 日韩综合在线 | 天天夜夜操 | 91秦先生艺校小琴 | 久久国产一区 | 99热99| 国产在线精品一区二区 | 亚洲国内精品 |