Вычисление минимального расстояния между двумя городами с помощью pl / sql

#oracle #recursion #plsql #backtracking

#Oracle #рекурсия #plsql #отслеживание возврата

Вопрос:

Мне нужно иметь возможность вычислять минимальное расстояние между двумя городами, учитывая таблицу, в которой указаны расстояния между парами городов. Два города не могут быть соединены напрямую, вместо этого они могут быть соединены через третий город и так далее.

Вот таблицы, которые у меня есть

 SQL> desc city
 Name                                      Null?    Type
 ----------------------------------------- -------- ------------

 CITY_ID                                   NOT NULL NUMBER
 CITY_NAME                                 NOT NULL VARCHAR2(80)
 CITY_STATE                                         VARCHAR2(80)
 ACTIVE                                             CHAR(1)
  

и

 SQL> desc connection
 Name                                      Null?    Type
 ----------------------------------------- -------- -------

 CITY1                                     NOT NULL NUMBER
 CITY2                                     NOT NULL NUMBER
 NO_OF_DAYS                                NOT NULL NUMBER
  

Я не знаю, как рекурсия и обратное отслеживание работают в pl / sql.

Комментарии:

1. Почему это кажется чем-то, что не подходит для выполнения в SQL?

Ответ №1:

Вы могли бы попробовать кодировать алгоритм Дейкстры в PL / SQL.

Или попробуйте это решение SQL.

Комментарии:

1. Отлично, я искал что-то вроде второй ссылки, которую вы опубликовали. Большое спасибо.