Я думаю, что у вас нет проблемы с plsql, вам нужна формула.Вот некоторый plsql-код, который вычисляет теорему Пифагора (https://en.wikipedia.org/wiki/Pythagorean_theorem):
declare
v_yourX NUMBER := 0;
v_yourY NUMBER := 0;
v_anotherX NUMBER := 0;
v_anotherY NUMBER := 1;
v_diffX NUMBER;
v_diffY NUMBER;
v_distance NUMBER;
begin
v_diffX := v_yourX - v_anotherX;
v_diffY := v_yourY - v_anotherY;
v_distance := sqrt(v_diffX*v_diffX + v_diffY*v_diffY);
dbms_output.put_line('Distance: ' || v_distance);
end;
. Вы хотите выбрать что-то из базы данных. Вот пример, как это сделать с помощью одного запроса:
SELECT t.*, sqrt(t.posX*t.posX + t.posY+posY) as distance FROM
(
select (0 - :yourX) posX, (0 - :yourY) posY from dual UNION ALL -- fake-table
select (1 - :yourX) posX, (2 - :yourY) posY from dual UNION ALL
select (2 - :yourX) posX, (10 - :yourY) posY from dual
) t
WHERE sqrt(t.posX*t.posX + t.posY+posY) < :maxDistance