11

Oracleが81989のSRIDを割り当てた空間データがあります。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)

そして私はそれを次のように変更する必要があります:

MDSYS.SDO_GEOMETRY(2001,27700,MDSYS.SDO_POINT_TYPE(420531.663898,268911.956161,NULL),NULL,NULL)

テーブル内のすべての行。しかし、配列の他の側面を変更せずに、SDO_GEOMETRYの単一の要素を自動的に変更する方法がわかりません。

誰かが私をその方向に向けることができますか?ありがとう。

4

1 に答える 1

25

SRIDを更新するには、次のようなものを使用できます。

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

テーブルエイリアス(この例ではTなど)を使用する必要があることに注意してください。

于 2013-02-05T14:44:02.393 に答える