簡體   English   中英

Oracle 空間:沒有索引就無法評估 SDO_NN

[英]Oracle spatial: SDO_NN cannot be evaluated without index

我有兩個名為my_nodes表和包含名稱和geoloc數據的restaurants 我需要得到一張表,為每個 my_node 返回最近的餐廳和節點到餐廳的距離。

    select n.node_id, r.r_name , sdo_nn_distance(1) as min_distance from 
        (select nodeid as node_id, geoloc  from my_nodes@my_server ) n,
        (select r_name, GEOLOC from restaurants) r 
        where sdo_nn   (n.geoloc, r.GEOLOC,   'Unit = MILE sdo_num_res = 1', 1) = 'TRUE'

上面的查詢返回:

    ORA-13249: SDO_NN cannot be evaluated without using index
    ORA-06512: at "MDSYS.MD", line 1723
    ORA-06512: at "MDSYS.MDERR", line 17
    ORA-06512: at "MDSYS.PRVT_IDX", line 9

如何解決?

你創建索引了嗎? 如果沒有,語法將是這樣的:

CREATE INDEX whichever_name_you_want
  ON table_name_here (sdo_geometry_column_name_here)
  INDEXTYPE IS MDSYS.SPATIAL_INDEX;

由於我不是特別擅長空間,請查看此 OTN 論壇討論: https : //community.oracle.com/thread/3696687? start =0& tstart =0 你可能會覺得很有趣。

盡管 Stack Overflow 上的人們更喜歡在這里發布代碼,但我想我不會復制/粘貼大約 200 行代碼。 如果結果證明 Paul Dziemiela(在那里寫了答案)有所幫助,請隨時發布您的解決方案。 祝你好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM