Oracle 中的 DISTANCE
函數是用于計算兩個地理點之間的距離。要使用此函數,首先需要確保已經安裝了 Oracle Spatial 組件。
以下是一個簡單的示例,說明如何在 Oracle 數據庫中使用 DISTANCE
函數:
CREATE TABLE locations (
id NUMBER PRIMARY KEY,
name VARCHAR2(50),
location SDO_GEOMETRY
);
INSERT INTO locations (id, name, location) VALUES (
1,
'Location A',
SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-74.006, 40.7128, NULL), NULL, NULL)
);
INSERT INTO locations (id, name, location) VALUES (
2,
'Location B',
SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-73.935242, 40.668179, NULL), NULL, NULL)
);
這里我們使用了 SRID(Spatial Reference ID)為 8307 的 WGS 84 坐標系。
DISTANCE
函數計算兩個地理點之間的距離:SELECT
a.name AS location_a,
b.name AS location_b,
SDO_GEOM.SDO_DISTANCE(a.location, b.location, 0.005) AS distance_in_meters
FROM
locations a,
locations b
WHERE
a.id = 1 AND b.id = 2;
這將返回 Location A 和 Location B 之間的距離(以米為單位)。請注意,我們使用了 SDO_GEOM.SDO_DISTANCE
函數,因為 DISTANCE
是一個保留關鍵字。
更多關于 Oracle Spatial 的信息和示例,可以參考官方文檔:https://docs.oracle.com/en/database/oracle/oracle-database/19/spatl/index.html