我目前正在尝试创建一个查询,该查询将使用给定的经纬度值来计算两个点之间的距离。到目前为止,我已经构造了一个查询,但遇到了几个错误,并且不确定我是否在正确的路径上!任何指导或建议都将不胜感激。我是甲骨文新手。
到目前为止的代码:
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;
/任何帮助都将不胜感激!
发布于 2016-10-20 14:58:12
在您的匿名块中使用了简单的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;
/https://stackoverflow.com/questions/40144864
复制相似问题