2016-10-20 10 views
0

Я попытался создать пространственную сеть в Oracle Sql Developer Client Editor; Когда я попытался использовать этот код, он дал мне «True» результат;Oracle "sdo_net_mem.network_manager.shortest_path" код не работает

SELECT SDO_NET.NETWORK_EXISTS('network_name') FROM DUAL; 

это означает, что команды SDO_NET работают исправно.

Но, когда я пытался этот код;

DECLARE 
    cost NUMBER; 
    path_id NUMBER; 
    res_numeric NUMBER; 
BEGIN 
    path_id := sdo_net_mem.network_manager.shortest_path('network_name',source_node_id, dest_node_id); 
    cost := SDO_NET_MEM.PATH.GET_COST('network_name', path_id); 
    DBMS_OUTPUT.PUT_LINE('The ID of the shortest path from X to Y is: ' || path_id || ' and it costs ' || cost); 
END; 

Дал мне этот результат;

enter image description here

Как я могу решить эту проблему; Благодарю.

ответ

1

Вы сначала загрузили сеть? Это делается с помощью процедуры SDO_NET_MEM.NETWORK_MANAGER.READ_NETWORK(). В вашем случае:

SDO_NET_MEM.NETWORK_MANAGER.READ_NETWORK('network_name', 'TRUE'); 

Обратите внимание, что пакет SDO_NET_MEM устарел в 12с и больше не должны быть использованы.

+0

Ничего не изменилось, к сожалению. –

+0

есть ли еще один способ создания пространственной сети в оракуле? –

0

Попробуйте запустить эту процедуру, чтобы проверить сеть

select SDO_NET.VALIDATE_NETWORK('network_name') from dual;

что ваш оракул версия?

Обычно мы запускаем сеть чтения перед запуском любых сетевых методов.

 Смежные вопросы

  • Нет связанных вопросов^_^