首批通过分布式安全可靠测评,为关键业务系统打造
SDO_GEOMETRY 属性访问
更新时间:2026-07-15 20:42:46
SDO_GEOMETRY 是一个复杂数据类型,它具有多个内在属性,可以在 PL/SQL 中访问这些属性。
SDO_GEOMETRY.SDO_GTYPE
SDO_GEOMETRY.SDO_GTYPE 表示几何对象的几何类型代码。
示例如下:
obclient [SYS]> SELECT SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(10, 50, NULL), NULL, NULL).SDO_GTYPE AS test_sdo_gtype FROM dual;
返回结果如下:
+----------------+
| TEST_SDO_GTYPE |
+----------------+
| 2001 |
+----------------+
1 row in set
SDO_GEOMETRY.SDO_SRID
SDO_GEOMETRY.SDO_SRID 表示几何对象的坐标系统的标识符 (SRID)。
示例如下:
obclient [SYS]> SELECT SDO_GEOMETRY(2001, 4326, SDO_POINT_TYPE(12, 14, NULL), NULL, NULL).SDO_SRID AS test_sdo_srid FROM dual;
返回结果如下:
+---------------+
| TEST_SDO_SRID |
+---------------+
| 4326 |
+---------------+
1 row in set
SDO_GEOMETRY.SDO_POINT
SDO_GEOMETRY.SDO_POINT 表示几何对象的点坐标,包含了 X、Y 和可选的 Z 坐标。也可以通过访问 SDO_GEOMETRY 的 SDO_POINT 子属性来获取这些子属性的值。
SDO_POINT 子属性如下:
SDO_GEOMETRY.SDO_POINT.X:表示几何对象的 X 坐标。SDO_GEOMETRY.SDO_POINT.Y:表示几何对象的 Y 坐标。SDO_GEOMETRY.SDO_POINT.Z:表示几何对象的可选 Z 坐标。Z 坐标是可选的,不是所有的几何对象都包含 Z 值。
示例如下:
访问
SDO_POINT属性,包含 X、Y 和 Z 坐标。obclient [SYS]> SELECT SDO_GEOMETRY(2001, 4326, SDO_POINT_TYPE(12, 14, NULL), NULL, NULL).SDO_POINT AS test_sdo_point FROM dual;返回结果如下:
+------------------------------+ | TEST_SDO_POINT | +------------------------------+ | SDO_POINT_TYPE(12, 14, NULL) | +------------------------------+ 1 row in set访问
SDO_POINT的 X 属性。obclient [SYS]> SELECT SDO_GEOMETRY(2001, 4326, SDO_POINT_TYPE(12, 14, NULL), NULL, NULL).SDO_POINT.X AS test_sdo_point_x FROM dual;返回结果如下:
+------------------+ | TEST_SDO_POINT_X | +------------------+ | 12 | +------------------+ 1 row in set访问
SDO_POINT的 Y 属性。obclient [SYS]> SELECT SDO_GEOMETRY(2001, 4326, SDO_POINT_TYPE(12, 14, NULL), NULL, NULL).SDO_POINT.Y AS test_sdo_point_y FROM dual;返回结果如下:
+------------------+ | TEST_SDO_POINT_Y | +------------------+ | 14 | +------------------+ 1 row in set访问
SDO_POINT的 Z 属性。obclient [SYS]> SELECT SDO_GEOMETRY(2001, 4326, SDO_POINT_TYPE(12, 14, NULL), NULL, NULL).SDO_POINT.Z AS test_sdo_point_z FROM dual;返回结果如下:
+------------------+ | TEST_SDO_POINT_Z | +------------------+ | NULL | +------------------+ 1 row in set
SDO_GEOMETRY.SDO_ELEM_INFO
SDO_GEOMETRY.SDO_ELEM_INFO 表示几何对象的元素信息(例如线段或多边形的起始和结束点索引)。
示例如下:
obclient [SYS]> SELECT SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1,1003,1), SDO_ORDINATE_ARRAY(10,105, 15,105, 20,110, 10,110, 10,105)).SDO_ELEM_INFO AS test_sdo_elem_info FROM dual;
返回结果如下:
+---------------------------------+
| TEST_SDO_ELEM_INFO |
+---------------------------------+
| SDO_ELEM_INFO_ARRAY(1, 1003, 1) |
+---------------------------------+
1 row in set
SDO_GEOMETRY.SDO_ORDINATES
SDO_GEOMETRY.SDO_ORDINATES 表示几何对象的坐标值数组。
示例如下:
obclient [SYS]> SELECT SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1,1003,1), SDO_ORDINATE_ARRAY(10,105, 15,105, 20,110, 10,110, 10,105)).SDO_ORDINATES AS test_sdo_ordinates FROM dual;
返回结果如下:
+-----------------------------------------------------------------+
| TEST_SDO_ORDINATES |
+-----------------------------------------------------------------+
| SDO_ORDINATE_ARRAY(10, 105, 15, 105, 20, 110, 10, 110, 10, 105) |
+-----------------------------------------------------------------+
1 row in set