首批通过分布式安全可靠测评,为关键业务系统打造
空间函数概述
更新时间:2026-04-07 20:57:20
OceanBase 数据库 Oracle 模式提供了一些函数,用于构造、查询、计算和格式转换空间对象。
功能
SDO_GEOMETRY 类型的成员函数功能如下表所示。
| Name | Returns | Description |
|---|---|---|
| GET_DIMS() | NUMBER | 用于获取几何对象的维度信息。它返回一个整数值,表示几何对象的维度数。在 SDO_GTYPE 中定义。与表达式 ST_COORDDIM 返回结果相同。 |
| ST_COORDDIM() | NUMBER | 与 GET_DIMS 效果相同。 |
| GET_GTYPE() | NUMBER | 用于获取几何对象的类型代码。它返回一个整数值,表示几何对象的类型。例如,2001 表示点、2002 表示线、2003 表示多边形。 |
| ST_ISVALID() | NUMBER | 用于检查几何对象的有效性。它返回一个布尔值,指示几何对象是否有效。如果几何对象有效,则返回 TRUE;如果无效,则返回 FALSE。 |
| GET_WKB() | BLOB | 用于获取几何对象的 Well-Known-Binary (WKB) 格式。它返回一个二进制字符串,表示几何对象的 WKB 格式,不带 SRID。 |
| GET_WKT() | CLOB | 用于获取几何对象的 Well-Known-Text (WKT) 格式。它返回一个字符串,表示几何对象的 WKT 格式,不带 SRID。 |
| GET_GEOJSON() | CLOB | 用于获取几何对象的 JSON 格式。它返回一个字符串,表示几何对象的 JSON 格式。返回空间对象的 JSON 格式输出。 |
说明
SDO_AREA()、SDO_CONTAINS()、SDO_ANYINTERACT()、GETVERTICES() 函数从 V4.3.5 BP5 版本开始支持。
SDO_GEOM 包中的函数功能如下表所示。
| Name | Returns | Description |
|---|---|---|
| SDO_DISTANCE() | NUMBER | 用于计算两个几何对象之间的距离信息。它返回一个整数值,表示两几何对象间的最小距离。 |
| SDO_AREA() | NUMBER | 用于计算一个几何对象的平面面积,返回值单位与几何所处 SRS 的线性单位一致;不进行球面/椭球面换算。仅支持 2D 平面几何,3D 输入不支持。 |
空间关系判断函数功能如下表所示。
| Name | Returns | Description |
|---|---|---|
| SDO_CONTAINS() | BOOLEAN | 用于判断一个几何对象是否严格包含另一个几何对象(边界点不视为包含)。等价于 SDO_RELATE(geomA, geomB, 'mask=CONTAINS')。 |
| SDO_ANYINTERACT() | BOOLEAN | 用于判断一个几何对象是否与另一个几何对象有任何形式的空间交集,例如相交、接触、重叠等,边界接触视为交互。等价于 SDO_RELATE(..., 'mask=ANYINTERACT')。 |
| SDO_RELATE() | VARCHAR2 | 用于确定两个几何对象之间的空间关系。它返回一个字符串(只能是 TRUE/FALSE),表示两个对象是否符合指定空间关系。 |
SDO_UTIL 包中的函数功能如下表所示。
| Name | Returns | Description |
|---|---|---|
| GETVERTICES() | TABLE | 用于获取一个几何对象的顶点坐标,支持 2D/3D。返回嵌套表 VERTEX_SET_TYPE,每行一个顶点,包含 X/Y/Z/W 及保留列。 |