Как мне подключиться к базе данных Oracle в R? - PullRequest
8 голосов
/ 30 марта 2011

Я пытаюсь использовать пакет RODBC для запроса данных из базы данных Oracle с использованием R. Кажется, что имеется много документации по доступу к базам данных MySQL из R, но не так много информации о базах данных Oracle.

Как мне создать DSN для моей базы данных Oracle?

Ответы [ 4 ]

8 голосов
/ 29 марта 2012

Вот инструкции, которые я разработал для нашего сайта:

  1. Установка Oracle Instant Client.Файлы, которые нужно извлечь:*

Примечание. Пакеты Basic Instant Client и ODBC Instant Client должны быть разархивированы в один и тот же каталог.Например, C: \ Oracle \ instantclient_11_1.

Сайт загрузки Oracle: http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html

Добавить расположение извлеченных файлов в переменную окружения пути (например, C: \ oracle \ instantclient_11_1) a.Щелкните правой кнопкой мыши «Мой компьютер» на рабочем столе, нажмите «Управление».б.Щелкните правой кнопкой мыши «Управление компьютером (локальное)», нажмите «Свойства».с.На вкладке «Дополнительно» нажмите кнопку «Настройки» в разделе «Переменные среды».д.Найдите запись «Путь» в разделе «Системные переменные» и нажмите кнопку «Изменить».е.Добавьте путь к концу поля «Значение переменной».Обратите внимание, что элементы разделяются точкой с запятой.е.Нажмите OK, чтобы подтвердить изменения.Закройте окно «Управление компьютером».

Дважды щелкните файл odbc_install.exe в каталоге клиента Instant Instant.

Откройте C: \ WINDOWS \ system32\ odbcad32.exe

Добавить источник данных для базы данных Oracle.а.Нажмите кнопку Добавить б.Выберите «Oracle in instantclient11_1» и нажмите «Готово».с.В диалоговом окне «Конфигурация драйвера Oracle ODBC» введите следующее: Имя источника данных: DSN Описание: Roacle (или что-то еще) TNS Service Name: SERVER: 1521 / DSN - Измените этот ID пользователя: Ваше имя пользователя оракула d.Нажмите кнопку «Проверить соединение».Вам будет предложено ввести пароль, и если все прошло хорошо, вы получите сообщение «Соединение установлено».

Затем вы можете создать канал в R с помощью:

     odbcConnect(dsn, uid = uid, pwd = pwd, readOnly = TRUE)
4 голосов
/ 30 марта 2011

Я не знаком с "R", однако:

Oracle ODBC DSN обычно настраивается с помощью -

  1. установка мгновенного клиента
  2. с помощью диспетчера ODBC для создания DSN
1 голос
/ 29 марта 2012

Я обнаружил, что на самом деле есть некоторые проблемы с подключением к Oracle из R. Возможно, это просто реализация и настройки, которые у нас есть в моей компании, но вот что я сделал, чтобы заставить его работать.

library(RODBC)

ch=odbcConnect("<AliasForYourDatabase>",pwd = "xxxxxxxx", believeNRows=FALSE)

odbcGetInfo(ch)

Критическим шагом для меня было 'believeNRows=FALSE', в противном случае я получил следующую ошибку при отправке запроса:

"Ошибка в .Call (C_RODBCFetchRows, attr (channel," handle_ptr "), max, buffsize,: отрицательные векторы недопустимы "

Это связано с тем, что Oracle не предоставляет фактическое количество строк обратно в соединение.

0 голосов
/ 06 мая 2012

Если кто-то еще наткнется на этот старый вопрос и ему понадобится помощь в соединении Oracle и R, этот PDF-файл полностью объясняет процесс и предоставляет необходимую информацию для загрузки.

{http://cran.fhcrc.org/web/packages/RODM/RODM.pdf}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...