0

現在、Oracle 10g データベースに列LAT(FLOAT)LNG(FLOAT)列を持つテーブルがあります。

タスクは、特定の点 (中心) から特定の距離 (半径) 内にあるすべてのエントリを見つけることです。アプリケーション自体は Java で、Hibernate は JPA 実装として使用されます。

いくつかの調査の結果、Oracle Spatial を使用する必要があることがわかりました。ただし、列を に変換する方法がないためSDO_GEOMETRY、Oracle のSDO_WITHIN_DISTANCE機能を使用できません。

そのような機能を実装するための回避策はありますか?

現在、私はすべてのエントリを照会し、Haversine 式を使用してそれらを反復処理しています。これはすぐにボトルネックになります :-)

ご協力ありがとうございます。

4

2 に答える 2

0

ターゲット テーブルの列を変更できない場合は、トリガーを使用して別のテーブルのデータを sdo_geometry としてマテリアライズし、sdo_within_distance を使用して、行を元のテーブルに結合できます。

于 2014-05-15T19:47:02.843 に答える