On Fri, 28 Nov 2008, Simon Collins wrote:
Hi
I'm presently trying to connect to Oracle through RODBC / UnixODBC
on linux (Red Hat 5). I've successfully connected through the
easysoft drivers but the trial license has run out and I'm trying
to connect via the default Oracle 11G driver. However I'm getting
the following error
library(RODBC)
setwd (paste("/home/oracle/scripts/R"))
channel <- odbcConnect("test", uid="prod", pwd="passwd")
*** caught segfault ***
address (nil), cause 'memory not mapped'
Traceback:
1: .Call(C_RODBCDriverConnect, as.character(connection), id,
as.integer(believeNRows))
2: odbcDriverConnect(st, ...)
3: odbcConnect("test", uid = "prod", pwd = "passwd")
aborting ...
The below shows the changes in the odbcinst.ini file.
[ORACLE]
Description = Easysoft ODBC Oracle Driver
#Driver = /usr/local/easysoft/oracle/libesoracle.so
Driver = /u01/app/oracle/product/11.1.0/db_1/lib/libsqora.so.11.1
#Setup = /usr/local/easysoft/oracle/libesoraclesetup.so
DontDLClose = 1
FileUsage = 2
Can anyone point me to what I'm doing wrong?
The short answer is no, but running under gdb and getting a backtrace
will show what is going wrong.
My experience suggestst that this is almost certainly a bug in the ODBC
driver. (RODBC asks the driver for more info than most applications,
and that often stresses badly written drivers.) So it is very likely
that you are doing nothing wrong, but one of your tools is letting you
down.
Version of R = R version 2.8.0 (2008-10-20)
Cheers
Simon
Dr S J Collins
Grid data consultant
University Manchester