2016-10-20 12 views
0

現在、指定された緯度/経度値を持つ2点間の距離を計算するクエリを作成しようとしています。私はこれまでのところクエリーを構築しましたが、いくつかのエラーが発生しており、正しいパスにいるかどうかわかりません!あらゆる指導やアドバイスをいただければ幸いです。私はオラクルに新しいです。これまでユークリッド距離測定を使用して距離に関するクエリを行う

コード:

DECLARE 
    lat NUMBER := -12; 
    lon NUMBER := 130; 
BEGIN 
SELECT x_id 
FROM x 
WHERE x_id = sqrt(power(lat - latitude, 2) + (lon - longitude, 2)) 
END; 
/

すべてのヘルプは非常にいただければ幸いです!

+2

質問を編集し、サンプルデータと希望する結果を提供してください。 –

+0

どこがエラーですか? – Thomas

答えて

0

あなたは無名ブロックで単純なSQL文を使用しています。変数を使用して、クエリによって返された値を受け取る必要があります。
経度の計算にパワー関数がありません。
セミコロン ';'クエリの最後に欠落しています。

SET SERVEROUTPUT ON 
DECLARE 
    lat NUMBER := -12; 
    lon NUMBER := 130; 
    lv_id NUMBER; 
BEGIN 
SELECT x_id INTO lv_id 
FROM x 
WHERE x_id = sqrt(power(lat - latitude, 2) + power(lon - longitude, 2)); 
dbms_output.put_line('ID : '||lv_id); 
EXCEPTION 
WHEN no_data_found THEN 
    dbms_output.put_line('ID Not Found'); 
WHEN too_many_rows THEN 
    dbms_output.put_line('More than one ID Not Found'); 
END; 
/
+0

私は例外処理 'too_many_rows'を追加する必要があると思います – AlexSmet

関連する問題