今天在处理时,遇到个问题,就是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定义如下
而elem_info有3个参数,SDO_STARTING_OFFSET、SDO_ETYPE 和SDO_INTERPRETATION 组成
如果是简单图形,不是multiple或者有洞的这种,一般第一个和第三个参数都是1,只需要调整第2个参数
所以我刚才那句更新语句的意思是,把对象更新成面。