2016-05-09 3 views
0

Я пытаюсь подключиться к Oracle из R, используя RODBC, без использования tnsnanes.ora.Подключение RODBC к Oracle без tnsnames.ora

Я пробовал следующие строки, но ни один из них не работает.

> con.text <- paste0("Driver={OracleODBC-11g};Dbq=//oracle.server:1527/database.pdw.prod;Uid=user;Pwd=pswd;") 

> con.text <- paste0("Driver={OracleODBC-11g}; ", 
     "CONNECTSTRING=(DESCRIPTION=(ADDRESS= (PROTOCOL = TCP)(HOST = oracle.server)(PORT = 1527))(CONNECT_DATA=(SERVICE_NAME = database.pdw.prod))); uid=user;pwd=pswd;") 

> con.text <- paste0("Driver=", "OracleODBC-11g" 
        , ";Server=", "oracle.server" 
        , ";Database=", "database.pdw.prod" 
        , ";Uid=", "user" 
        , ";Pwd=", "pwd", ";") 

> con.text <- paste0("Driver=", "OracleODBC-11g" 
         , ";Server=", "oracle.server" 
         , ";CONNECTSTRING=" , "(DESCRIPTION=(ADDRESS= (PROTOCOL = TCP)(HOST = oracle.server)(PORT = 1527))(CONNECT_DATA=(SERVICE_NAME = database.pdw.prod)))" 
         , ";Database=", "database.pdw.prod" 
         , ";Uid=", "user" 
         , ";Pwd=", "pswd", ";") 
> con1 <- odbcDriverConnect(connection = con.text) 

Но для всех этих строк я получаю следующее сообщение об ошибке:

Warning messages: 
1: In odbcDriverConnect(connection = con.text) : 
[RODBC] ERROR: state HY000, code 12162, message [unixODBC][Oracle][ODBC][Ora]ORA-12162: TNS:net service name is incorrectly specified 
2: In odbcDriverConnect(connection = con.text) : ODBC connection failed 

ИЛИ

 1: In odbcDriverConnect(connection = con.text) : 
    [RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data source name not found, and no default driver specified 
+0

Вместо 'SERVICE_NAME', попробуйте' SID' –

ответ

1

Правильный sysntaxis вы ищете

Conex  <- odbcDriverConnect("DRIVER=Oracle en OraClient11g_home2;UID=USERNAME;PWD=PASSWORD;DBQ=//HOSTNAME:PORT/ORACLE_SID;", 
      believeNRows = FALSE) 

Ex

Conex  <- odbcDriverConnect("DRIVER=Oracle en OraClient11g_home2;UID=John;PWD=Deere;DBQ=//fcoracleserver.youdomain:1521/TestEnvironment;", 
      believeNRows = FALSE) 

Жесткая часть заключается в том, чтобы найти имя Водителя, так как вы можете видеть мое на испанском.

Что я сделал, так это создание первого контура ODBC с использованием C: \ Windows \ System32 \ odbcad32.exe, там вы можете проверить правильное имя своего драйвера Oracle или SQL Server.

Как только вы создаете коннекцию, вы можете использовать odbcDataSources() на R, чтобы увидеть это соединение и узнать драйвер. Это действительно тяжелая часть.

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

Смежные вопросы