我有一个表 ( granule),其中包含大约 400 万个当前 SRID = 8307 的唯一几何对象。
我正在尝试创建一个具有相同数据的第二个表,但使用笛卡尔坐标系。
我创建了表,
create table granule_cartesian (
granule varchar(64) not null,
SHAPE sdo_geometry NOT NULL );
Run Code Online (Sandbox Code Playgroud)
并插入正确的geom_metadata
insert into user_sdo_geom_metadata (table_name, column_name, diminfo, srid)
values ( 'GRANULE_CARTESIAN', 'SHAPE',
mdsys.sdo_dim_array(
mdsys.sdo_dim_element('longitude', -180, 180, .5),
mdsys.sdo_dim_element('latitude', -90, 90, .5)),
null);
Run Code Online (Sandbox Code Playgroud)
现在我想将颗粒的几何内容复制到颗粒_笛卡尔中。
显然,由于 SRID 不匹配,直接复制将无法工作。
我可以通过转换为 wkt 并返回到几何体、剥离 SRID 来一次复制几个:
insert into granule_cartesian
select granule,
SDO_GEOMETRY(SDO_UTIL.TO_WKTGEOMETRY(shape), null) as shape
from granule
where platform = 'ZZ'; -- granule has a few other columns...
Run Code Online (Sandbox Code Playgroud)
如果我选择小于 ~ …