oracle---geometry类型转换

今天在处理时,遇到个问题,就是geometry是一个面的外边界,是个polyline,想把它转成面,然后使用relate的关系判断符,判断包含关系。

写法如下

update tablename  tn set tn.geometry.sdo_gtype='2003', tn.geometry.sdo_elem_info=mdsys.sdo_elem_info_array(1,1003,1)

解释一下,oracle 判断geometry是个面还是线,通过2个地方,一个是sdo_gtype,一个是sdo_elem_info。

gtype定义如下

oracle---geometry类型转换_第1张图片

而elem_info有3个参数,SDO_STARTING_OFFSET、SDO_ETYPE 和SDO_INTERPRETATION 组成

如果是简单图形,不是multiple或者有洞的这种,一般第一个和第三个参数都是1,只需要调整第2个参数

oracle---geometry类型转换_第2张图片

所以我刚才那句更新语句的意思是,把对象更新成面。


你可能感兴趣的:(oracle---geometry类型转换)