GIS*_*han 9 oracle oracle-spatial
我有空间数据,Oracle已分配SRID为81989.我想将它改为27700 - 它们都是相同的坐标系,它只是Oracle使用自己的SRID; 所以不需要重新投影(因为SDO_CS.TRANSFORM它不起作用,因为它实际上也改变了坐标,这是我不想要的)).
我已经USER_SDO_GEOM_METADATA足够轻松地更新了,但是SDO_GEOMETRY包含数据本身也有SRID,我不知道如何更改它.
例如,我的当前数据如下:
MDSYS.SDO_GEOMETRY(2001,81989,MDSYS.SDO_POINT_TYPE(420531.663898,268911.956161,NULL),NULL,NULL)
Run Code Online (Sandbox Code Playgroud)
我需要把它改成:
MDSYS.SDO_GEOMETRY(2001,27700,MDSYS.SDO_POINT_TYPE(420531.663898,268911.956161,NULL),NULL,NULL)
Run Code Online (Sandbox Code Playgroud)
对于表中的所有行.但我不知道如何自动更改SDO_GEOMETRY中的单个元素,同时保持数组的其他方面不变.
任何人都能指出我的方向吗?谢谢.
Bri*_*ire 21
要更新SRID,您可以使用以下内容:
UPDATE YOUR_TABLE T
SET T.YOUR_SDO_GEOMETRY_COLUMN.SDO_SRID = 27700
WHERE T.YOUR_SDO_GEOMETRY_COLUMN IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
请注意,必须使用表别名(如本例中的T).