美文网首页我爱编程
关于RODBC连接oracle数据库并进行查询的简单介绍

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

作者: 飞翔 | 来源:发表于2013-08-13 12:18 被阅读0次

    如果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数据库并进行查询的简单介绍

        本文链接:https://www.haomeiwen.com/subject/frpftttx.html