Подключитесь к базе данных 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 есть также кнопка "Проверить соединение", которую вы должны использовать для проверки подключения!
Надеюсь это поможет!