[R] Run time error when executing sqlQuery using the 64-bit version of R with 64-bit RODBC package in a Solaris 10 Sparc machine.

Marc Schwartz marc_schwartz at me.com
Wed Jan 20 15:32:37 CET 2010


On Jan 19, 2010, at 10:04 PM, Eric Ma wrote:

> 
> I am having the exact same error, and the suggested work-around does not
> help.  
> 
> My env is:
> 
> 64-bit SUSE Linux v 10.1 on Xeon processors.  gcc and gfortran version is
> 4.1.2
> 64-bit R 2.10.1 compiled from soure using CC="gcc -m64" etc.
> 64-bit unixODBC driver manager 2.2.14 compiled from source
> Oracle Instant Client ODBC driver for Linux x86_64 11.2.0.1.0
> RODBC 1.3-1 installed from within R.  ODBC_INCLUDE and ODBC_LIBS point to
> the unixODBC include and the .so directories
> 
> unixODBC isql test is successful.
> 
> I know it is a 32-bit and 64-bit mismatch, and the issue is in R or RODBC. 
> How can I confirm the 32- vs. 64-bit version of R and RODBC?
> 
> Thanks,
> 
> Eric

For R:

  .Machine$sizeof.pointer

will return 4 if R is 32 bit and 8 if 64 bit. If R is 64 bit, then unless you changed something, RODBC should be compiled and installed as 64 bit as well.

However, if you could successfully connect to the Oracle server, I don't believe that this is a 32/64 bit mis-match. I am fairly sure that the initial odbcConnect() call would fail if the complete tool chain was not 64 bit. So if you are getting an error from sqlQuery() after successfully connecting, something else is likely going on.

A successful odbcConnect() would also point to most other Oracle components, config files and environment variables being set properly.

If you used the iSQL tool provided by the unixODBC folks, I would also just verify that you can connect using the sqlplus tool provided by Oracle to connect and run the same query that you are attempting inside R with RODBC.

Not sure where else to point you for the moment.

HTH,

Marc Schwartz



More information about the R-help mailing list