I'm doing a basic transfer of Geomedia Text Features from one table to another. In the past I've always done this by exposing the oracle_element{} attribute and exploding the list. This is always worked fine but I'm running into problems with certain features that don't contain the oracle_element{} attribute. An example of what I'm talking about:
create table source (id int, geometry mdsys.sdo_geometry);
create table destination (id int, geometry mdsys.sdo_geometry);
insert into mdsys.user_sdo_geom_metadata
values(
'SOURCE',
'GEOMETRY',
mdsys.sdo_dim_array(
mdsys.sdo_dim_element('X', 610000, 660000, 0.0005),
mdsys.sdo_dim_element('Y', 5500000, 5550000, 0.0005)
),
82232
);
insert into mdsys.user_sdo_geom_metadata
values(
'DESTINATION',
'GEOMETRY',
mdsys.sdo_dim_array(
mdsys.sdo_dim_element('X', 610000, 660000, 0.0005),
mdsys.sdo_dim_element('Y', 5500000, 5550000, 0.0005)
),
82232
);
-- row that translates correctly, sdo_gtype = 2001
insert into source (id, geometry) values (
1,
mdsys.sdo_geometry(
2001,
82232,
null,
mdsys.sdo_elem_info_array(1, 0, 6001, 46, 1, 1),
mdsys.sdo_ordinate_array(57.0947570800781, 0, 0, 1, 0, 155, 1953651835, 1633431910, 1550414702, 1769172577, 828862563, 1546794290, 1717986660, 1717336880, 1953787503, 1551592546, 1717317734, 1550608750, 1634231142, 1952805746, 1916870704, 996958569, 168656253, 1868782715, 1953656684, 991980642, 1684370012, 1546990898, 1701147239, 1650208878, 811955564, 168656187, 1701410396, 1852402551, 1968976996, 1885090147, 1550086753, 1546741347, 1735287148, 858992689, 829646428, 775168048, 544028728, 913532508, 8195360, 637050.695979835, 5536121.47807501)
)
);
-- row that doesn't translate correctly, sdo_gtype = 2004
insert into source (id, geometry) values (
2,
mdsys.sdo_geometry(
2004,
82232,
null,
mdsys.sdo_elem_info_array(1, 0, 6001, 8, 1, 1, 10, 0, 6001, 17, 1, 1, 19, 0, 6001, 26, 1, 1, 28, 0, 6001, 35, 1, 1, 37, 0, 6001, 44, 1, 1, 46, 0, 6001, 53, 1, 1, 55, 0, 6001, 62, 1, 1, 64, 0, 6001, 71, 1, 1, 73, 0, 6001, 80, 1, 1, 82, 0, 6001, 89, 1, 1, 91, 0, 6001, 98, 1, 1, 100, 0, 6001, 107, 1, 1, 109, 0, 6001, 116, 1, 1, 118, 0, 6001, 125, 1, 1),
mdsys.sdo_ordinate_array(45.4333842851572, 0, 0, 1, 134348800, 2, 78, 629302.384858863, 5517176.36121535, 44.6030243280644, 0, 0, 1, 134348800, 2, 79, 629305.258198423, 5517179.23638135, 43.7726643709715, 0, 0, 1, 134348800, 2, 84, 629308.172903168, 5517182.06960496, 42.2454428421706, 0, 0, 1, 134348800, 2, 65, 629313.639663363, 5517187.16905656, 41.4818320777702, 0, 0, 1, 134348800, 2, 83, 629316.423527983, 5517189.66368812, 40.7182213133697, 0, 0, 1, 134348800, 2, 66, 629319.240391641, 5517192.12099722, 39.9546105489693, 0, 0, 1, 134348800, 2, 85, 629322.089754005, 5517194.54054739, 39.3645476855689, 0, 0, 1, 134348800, 2, 73, 629324.313472766, 5517196.38406574, 38.814534337784, 0, 0, 1, 134348800, 2, 76, 629326.403255095, 5517198.08175246, 38.0909730889989, 0, 0, 1, 134348800, 2, 84, 629329.17707837, 5517200.28441903, 36.563751560198, 0, 0, 1, 134348800, 2, 73, 629335.121836545, 5517204.81759935, 35.9736886967976, 0, 0, 1, 134348800, 2, 78, 629337.45070098, 5517206.52636368, 35.2501274480125, 0, 0, 1, 134348800, 2, 70, 629340.330283504, 5517208.58884765, 34.4598170065351, 0, 0, 1, 134348800, 2, 79, 629343.5049919, 5517210.79984779)
)
);
commit;
Both features are valid Geomedia text features, but only the point has the oracle_element{} attribute. The other has an oracle_unknown_element{} attribute, but it doesn't seem to contain data for all the points in the collection. If I look in the inspector the contents are:
oracle_unknown_element{0}.interpretation: 6001
oracle_unknown_element{0}.num_ordinates: 7
oracle_unknown_element{0}.ordinate{1}: 0
oracle_unknown_element{0}.ordinate{2}: 0
oracle_unknown_element{0}.ordinate{3}: 1
oracle_unknown_element{0}.ordinate{4}: 134348800
oracle_unknown_element{0}.ordinate{5}: 2
oracle_unknown_element{0}.ordinate{6}: 79
These are the ordinates for only the last point in the geometry object, minus the X and Y coordinates.
Does anyone have any ideas on how I can import these collection features properly?