Я попробовал совет от GriffeyDog, но, к сожалению, он не решил проблему - так что в итоге я тоже check for your self approach
:
Документация Oracle гласит, что структура записи в файле tnsnames.ora
должна быть такой:
net_service_name=
(DESCRIPTION=
(ADDRESS=...)
(ADDRESS=...)
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)))
Наше было:
net_service_name=
(DESCRIPTION=
(ADDRESS=...)
(ADDRESS=...)
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)))
Очевидно, что отступ имеет решающее значение - если любая из строк в блоке одного net_service_name
начинается с индекса 1 - это исключение выдается.
Только после добавления отступа для всех (может быть пробел или табуляция) - это работает. Это не должно выглядеть хорошо, но должно иметь какое-то смещение.
Важное замечание - единственная проблема с '('
, правила отступа не применяются к ')'
.
Например. приведенный ниже пример отлично подходит:
net_service_name=
(DESCRIPTION=
(ADDRESS=...
)
(ADDRESS=...
)
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com))
)
После поиска этой проблемы, которая будет задокументирована - я наконец-то обнаружил, что она действительно задокументирована в http://download.oracle.com/docs/cd/A57673_01/DOC/net/doc/NWUS233/apb.htm
А вот важный отрывок:
Даже если вы не решите сделать отступ для ваших файлов таким образом, вы должны сделать отступ в обернутой строке хотя бы на один пробел, или будет неверно истолкован как новый параметр . Допустим следующий формат:
(ADDRESS = (СООБЩЕСТВО = tcpcom.world) (ПРОТОКОЛ = TCP)
(HOST = max.world) (PORT = 1521)) * * тысяча тридцать-три
Следующая раскладка недопустима:
(ADDRESS = (СООБЩЕСТВО = tcpcom.world) (ПРОТОКОЛ = TCP)
(HOST = max.world) (PORT = 1521))