Я могу заставить пакет odbc
работать в Windows, пока я добавляю DSN для своего сервера Oracle, но я не могу заставить его работать вообще. А именно, после добавления записи DSN с именем «DummyDB», которая содержит только IP-адрес и идентификатор службы (в дополнение к драйверу, конечно), это работает:
conn <- dbConnect(odbc(),
DSN = "DummyDB",
UID = credentials$login,
PWD = credentials$pw,
Port = 1521)
и, тем не менее, с тем же IP, драйвером и идентификатором службы, что и в записи DSN, этого не происходит (IP x 'исключен для конфиденциальности):
conn <- dbConnect(odbc(),
Driver = "Oracle in IC",
Host = "xx.xxx.xx.xxx",
SVC = "XE",
UID = credentials$login,
PWD = credentials$pw,
Port = 1521)
и это не работает:
conn <- dbConnect(odbc(), .connection_string = "Driver={Oracle in IC};Server=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xx.xxx.xx.xxx)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=xe)));Uid=xxx;Pwd=xxx;")
И, конечно, я пытался настроить все это в разные стороны. Несмотря ни на что, я получаю всегда загадочное:
nanodbc/nanodbc.cpp:950: HY000: [Oracle][ODBC][Ora]ORA-12560: TNS:protocol adapter error
Обязательные реквизиты:
- Я использую VPN и переадресацию портов в программном обеспечении моего маршрутизатора, и они должны быть настроены достаточно правильно для успешного подключения DSN, указывая на WAN IP маршрутизатора.
- Я попытался заменить имя моего сервера IP-адресом моего маршрутизатора (на который указывает код моей клиентской системы) и локальным IP-адресом моего сервера, как в tnsnames.ora, так и в listener.ora. Я думаю, что я попробовал каждую комбинацию там, останавливая и запуская весь сервер каждый раз, и ожидая минуту после запуска. С большинством этих комбинаций, на самом деле, соединение DSN завершается с
listener does not currently know of service requested in connect descriptor
. Между тем, не-DNS-соединение завершается с моим хорошим другом "ошибка адаптера протокола".
- Я пытался использовать локальный IP-адрес сервера на моем клиенте, когда мой клиент находится в той же локальной сети, и с этим локальным IP-адресом в файлах .ora. Та же ошибка Работают простые IP-пинги.
Возможно, по какой-то причине DSN, добавленный через администратора источников данных, является здесь жестким требованием? На этом этапе было бы замечательно иметь любой пример успешного подключения к любому серверу (Oracle) с этим пакетом, но без использования записи DSN на стороне клиента.