Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改SRID';用于Oracle SDO_几何体的s_Oracle_Oracle Spatial - Fatal编程技术网

如何更改SRID';用于Oracle SDO_几何体的s

如何更改SRID';用于Oracle SDO_几何体的s,oracle,oracle-spatial,Oracle,Oracle Spatial,我有Oracle分配的SRID为81989的空间数据。我想把它改成27700——它们都是相同的坐标系,只是Oracle使用了自己的SRID;因此不需要重新投影(例如,SDO_CS.TRANSFORM不起作用,因为它实际上也改变了坐标,这是我不想要的) 我已经很容易地更新了USER\u SDO\u GEOM\u元数据,但是包含数据本身的SDO\u几何体也有SRID,我不知道如何更改它 例如,我当前的数据如下所示: MDSYS.SDO_GEOMETRY(2001,81989,MDSYS.SDO_PO

我有Oracle分配的SRID为81989的空间数据。我想把它改成27700——它们都是相同的坐标系,只是Oracle使用了自己的SRID;因此不需要重新投影(例如,
SDO_CS.TRANSFORM
不起作用,因为它实际上也改变了坐标,这是我不想要的)

我已经很容易地更新了
USER\u SDO\u GEOM\u元数据
,但是包含数据本身的
SDO\u几何体
也有SRID,我不知道如何更改它

例如,我当前的数据如下所示:

MDSYS.SDO_GEOMETRY(2001,81989,MDSYS.SDO_POINT_TYPE(420531.663898,268911.956161,NULL),NULL,NULL)
我需要把它改成:

MDSYS.SDO_GEOMETRY(2001,27700,MDSYS.SDO_POINT_TYPE(420531.663898,268911.956161,NULL),NULL,NULL)
用于表中的所有行。但我不知道如何自动改变SDO_几何体中的单个元素,同时保持阵列的其他方面不变


有人能给我指一下方向吗?谢谢。

要更新SRID,您可以使用以下方法:

UPDATE YOUR_TABLE T
SET T.YOUR_SDO_GEOMETRY_COLUMN.SDO_SRID = 27700
WHERE T.YOUR_SDO_GEOMETRY_COLUMN IS NOT NULL

请注意,使用表别名(如本例中的T)是必要的。

对于其他人,可能需要注意的是,为了真正做到这一点,必须首先删除空间索引,更新元数据表,然后执行srid更新,然后重新添加空间索引