关于RODBC连接oracle数据库并进行查询的简单介绍

如果oracle服务器是32bit的,那么在你的工作电脑上还是装上32bit的oracle客户端吧。

顺便说下如何在64bit的windows系统上如何安装32bit oracle客户端吧。简单说来就是64bit的windows本身并不支持32bit的oracle客户端,需要更改windows版本识别。

我在windows xp下安装了32bit的oracle客户端,然后安装了R 3.0.1及RODBC。配置好后,就可以通过ODBC的方式轻松连上单位的oracle数据库了。这一步实现起来并不难。

在简单的使用当中发生了以下几个比较有意思的意外:

  • 发生了sql语句的意外终止:
library(RODBC)
channel <- odbcConnect(DSN,uid,pwd)
sql1 <- sqlQuery(channel, 'select * from Table while sampleno='sql'')

错误发生了。

查找了半天然后电话咨询了半天,最后发现了第一个错误:

while

oracle中应该是where

  • 在修改成where之后继续上述语句,然后继续报错,并且发现了R在解析sql语句的时候where后面的取值并不完整。你能发现错误在哪里吗?
sql1 <- sqlQuery(channel, 'select * from Table where sampleno='sql'')

经历多次修改后发现了问题:

sqlQuery里面的sql语句应该包括在一个双引号里面,而不是一个单引号,在我们日常的R code中单双引号一般都是在混用的,这是我第一次对单双引号的使用产生了谨慎。正确的用法应该是

sql1 <- sqlQuery(channel, "select * from Table while sampleno='sql'")

顺利完成了RODBC通过ODBC连接oracle数据库的第一次。

你可能感兴趣的:(关于RODBC连接oracle数据库并进行查询的简单介绍)