Я пытаюсь подключить R к базе данных (я просто хочу отметить, что у меня нет опыта работы с базами данных, поэтому я надеялся, что вы можете дать мне несколько советов). Сначала я попробовал пакет ROracle, используя код из это сообщение:
library(ROracle)
host <- "xxx.xxx.xx.xxx"
port <- 1521
service <- "K" #? not sure exactly what does it mean service, is it name of server?i cannot really find any informations about it
drv <- dbDriver("Oracle")
connect.string <- paste(
"(DESCRIPTION=",
"(ADDRESS=(PROTOCOL=tcp)(HOST=", host, ")(PORT=", port, "))",
"(CONNECT_DATA=(SERVICE_NAME=", service, ")))", sep = "")
con <- dbConnect(drv, username = "user", password = "pwd", dbname = connect.string)
Я не получил никакого сообщения об ошибке, однако, когда я использовал команду
dbGetInfo(con)
Я получил следующий ответ:
$username
[1] "user"
$dbname
[1] "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xxx.xxx.xx.xxx)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=K)))"
$serverVersion
[1] "xx.x.x.x.x"
$serverType
[1] "Oracle RDBMS"
$resTotal
[1] 0
$resOpen
[1] 0
$prefetch
[1] FALSE
$bulk_read
[1] 1000
$bulk_write
[1] 1000
$stmt_cache
[1] 0
$results
list()
при проверке документации о ROracle я узнал, что:
$resTotal
Количество наборов результатов для этого подключения
$resOpen
Количество наборов результатов, открытых в этом соединении.
которые в моем случае равны 0, означает ли это, что я подключен или нет? Я просто не могу понять, как я могу проверить, подключен ли я к базе данных/серверу.
Затем я решил проверить пакет RODBC
:
library(RODBC)
ch <- odbcConnect("K",uid="user", pwd = "pwd") # again question what is the first parameter? should it be server name?
odbcGetInfo(ch)
Это закончилось хуже с ошибкой:
Warnmeldungen:
1: In odbcDriverConnect("DSN=K;UID=user;PWD=pwd") :
[RODBC] FEHLER: Status IM002, Code 0, Nachricht [unixODBC][Driver Manager]Data source name not found, and no default driver specified
2: In odbcDriverConnect("DSN=K;UID=user;PWD=pwd") :
ODBC-Verbindung fehlgeschlagen
>
> odbcGetInfo(ch)
Fehler in odbcGetInfo(ch) : Argument ist kein offener RODBC-Kanal
Может ли кто-нибудь объяснить мне, как я могу подключить его к базе данных и проверить соединение? На самом деле я очень запутался во всей этой процедуре, и я пытался найти решение самостоятельно, даже в stackoverflow, однако я вообще этого не понял. заранее спасибо
ch <- odbcConnect("K",uid="user", pwd = "pwd")
. Здесь K — имя вашей базы данных. Сначала попробуйте это, используя пакетRODBC
- person CuriousBeing   schedule 09.02.2016