4

ポイントまたはポリゴンがOracle空間SQLクエリを使用して別のポリゴン内にあるかどうかを確認する方法

これがシナリオです。

ポリゴン(たとえば、州の)である空間タイプ(sdo_geometry)を含むテーブル(STATE_TABLE)があり、大学を含む空間データ(sdo_geometry)(ポイント/ポリゴン)を含む別のテーブル(UNIVERSITY_TABLE)があります。

SQL select ステートメントを使用して、選択した大学が特定の州にあるかどうかを調べるにはどうすればよいですか。

主に、ジオフェンス内の特定のオブジェクトの存在を特定したいと考えています。

ありがとう。

4

1 に答える 1

6

'CONTAINS'のマスクでSDO_CONTAINSまたはSDO_RELATEのいずれかを使用する必要があります

次の場所にあるドキュメントを参照してください。

SDO_CONTAINS http://download.oracle.com/docs/cd/E11882_01/appdev.112/e11830/sdo_operat.htm#sthref1064 for

また

SDO_RELATE http://download.oracle.com/docs/cd/E11882_01/appdev.112/e11830/sdo_operat.htm#i78531

これらのいずれかを実行すると、次のようになります(空間情報が、空間的にインデックス付けされた「GEOM」という列に含まれていると仮定します)。

select 
    ST.NAME, UT.UNIVERSITY_NAME
from
    STATE_TABLE ST
    INNER JOIN UNIVERSITY_TABLE UT
      ON SDO_CONTAINS(ST.GEOM, UT.GEOM) = 'TRUE'

私はこれの正しい構文を特に覚えておらず、上記の結合が正しく機能するかどうかわからないので、あなたは私を許さなければなりません。しかし、これはあなたを正しい方向に向けるのに十分なはずです。

于 2011-01-05T06:09:52.780 に答える