В примере, приведенном в Oracle Docs, есть способ создать многоугольник с отверстием со следующим синтаксисом:
SDO_GEOMETRY(
2003, -- two-dimensional polygon
NULL,
NULL,
SDO_ELEM_INFO_ARRAY(1,1003,1, 19,2003,1), -- polygon with hole
SDO_ORDINATE_ARRAY(2,4, 4,3, 10,3, 13,5, 13,9, 11,13, 5,13, 2,11, 2,4,
7,5, 7,10, 10,10, 10,5, 7,5)
)
В моем случае у меня есть два SDO_GEOMETRY, созданные следующим образом:
SELECT sdo_util.circle_polygon (longitude_1,
latitude_1,
r_1,
tol)
INTO inner_circle_geom
FROM DUAL;
SELECT sdo_util.circle_polygon (longitude_2,
latitude_2,
r_2,
tol)
INTO outer_circle_geom
FROM DUAL;
Как я могу создать многоугольник с отверстием, используя две указанные выше геометрии?
я пытался использовать
...
SDO_ORDINATE_ARRAY(outer_circle_geom.sdo_ordinates, inner_circle_geom.sdo_ordinates)
Но я получаю ошибку
PLS-00306: wrong number or types of arguments in call to 'SDO_ORDINATE_ARRAY'
РЕДАКТИРОВАТЬ: версия Oracle 10g
SDO_GEOM.SDO_XOR
илиSDO_GEOM.SDO_DIFFERENCE
? - person MT0   schedule 20.11.2020