Подключитесь к базе данных Oracle, используя ROracle с tnsnames.ora в Mac OS 10.10

Продолжение установки пакетов RODBC/ROracle на OS X Mavericks...

Прежде всего, я установил ROracle на Mac OS 10.10.3 (Yosemite), используя ответ, предоставленный @joran. Кроме того, используя стартовый файл plist для установки DYLD_LIBRARY_PATH, я могу запустить library(ROracle)и загружается просто отлично. Однако я не могу подключиться к своей базе данных с помощью файла tnsnames.ora. Я добавил переменную TNS_ADMIN в файл.Renviron, который RStudio, похоже, подобрал:

> Sys.getenv("TNS_ADMIN")
[1] "opt/oracle/instantclient_11_2/network/admin"

Например, когда я запускаю следующее

con <- dbConnect(drv = dbDriver("Oracle"), dbname = "db", username = "user", password = "pw")

Я получаю ошибку

Error in .oci.Connect(.oci.drv(), username = username, password = password,  : 
  ORA-12154: TNS:could not resolve the connect identifier specified

Кроме того, я также добавил переменные среды TNS_ADMIN в.bash_profile, но это не помогло.

ПРИМЕЧАНИЕ 1. Я уже использовал файл tnsnames.ora для подключения к базе данных с помощью SQL Developer, поэтому я уверен, что проблема связана с содержимым файла.

ПРИМЕЧАНИЕ 2: я могу подключиться с помощью ROracle, например:

# see example at http://www.oralytics.com/2015/05/loading-json-data-into-oracle-using.html
host <- "localhost"
port <- 1521
service <- "pdb12c"
drv <- dbDriver("Oracle")

connect.string <- paste(

"(DESCRIPTION=",

"(ADDRESS=(PROTOCOL=tcp)(HOST=", host, ")(PORT=", port, "))",

"(CONNECT_DATA=(SERVICE_NAME=", service, ")))", sep = "")

con <- dbConnect(drv, username = "dmuser", password = "dmuser", dbname = connect.string)

Я дважды проверил мой файл tnsnames.ora, и он в том же формате, что и connect.string, так что я думаю, что он на самом деле не виден RStudio, хотя Sys.getenv("TNS_ADMIN") дает мне правильный путь. Также возможно, что имя, требуемое аргументом dbname на Mac, отличается от Windows.

Любая помощь будет принята с благодарностью! Спасибо!

2 ответа

В Интернете я видел много рекомендаций по добавлению переменных среды на Yosemite для доступа к RStudio. Единственное, что полностью сработало для меня, по крайней мере, пока, это добавление всех переменных среды в файл plist. Вы можете добавить столько переменных, сколько захотите, что описано @MortimorGoro в разделе Установка переменных среды через launchd.conf, больше не работает в OS X Yosemite/El Capitan/macOS Sierra?,

Поэтому я решил добавить TNS_ADMIN в plist!

Для тех из вас, кто попал сюда, но работает в Windows 7, на моей рабочей станции я должен использовать файл TNSnames.ora (также использующий переменную среды TNS_ADMIN)(находится в: C:\app - см. 2-й снимок экрана), я получил следующее работать:

library(RODBC)

channel <- odbcConnect("PERMIT_DEV_odbc", uid = "POWDERED_TOAST_MAN", pwd = "dev_NONE_OF_YOUR_BEEZNEEZ", believeNRows = FALSE)

testsql <- "select sysdate from dual;"

query <- sqlQuery(channel = channel, query = testsql)

1 Нажмите на кнопку Пуск (в Windows 7)

2 Начните вводить "odbc" и найдите "настроить источники данных (ODBC)" или что-то в этом роде.

3 Добавьте ваше соединение на основе вашего файла TNS.

4 есть также кнопка "Проверить соединение", которую вы должны использовать для проверки подключения!

введите описание изображения здесь

введите описание изображения здесь

Надеюсь это поможет!

Другие вопросы по тегам