Rstudio 使用ODBC连接数据库PostgreSQL

本文已经安装PostgreSQL和对应ODBC驱动,连接前请检查驱动安装和配置情况。安装和配置完成后如下图所示: 输入图片说明

首先安装R语言ODBC连接工具包。R语言连接PostgreSQL还可以使用RPostgreSQL软件包。

install.packages("RODBC")

本机默认有数据库test。如下图所示

输入图片说明

#查看可用数据源
odbcDataSources()  #本文数据源名称"PostgreSQL35W"
#建立连接PostgreSQLConnection ,数据源PostgreSQL35W、用户名postgres、密码123456,具体情况根据实际情况修改
PostgreSQLConnection <- odbcConnect("PostgreSQL35W",uid = "postgres",pwd = "123456")
#需要执行SQL语句
result <- sqlQuery(PostgreSQLConnection,"select * from User")
#查看表
> sqlTables(PostgreSQLConnection)
  TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS
1      test      public       User      TABLE    
#断开连接
odbcClose(conn)

连接过程中可能会出现报错

> PostgreSQLConnection <- odbcConnect("PostgreSQL35W",uid = "postgres",pwd = "123456")
Warning messages:
1: In RODBC::odbcDriverConnect("DSN=PostgreSQL35W;UID=postgres;PWD=123456") :
  [RODBC] ERROR: state IM014, code 0, message [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
2: In RODBC::odbcDriverConnect("DSN=PostgreSQL35W;UID=postgres;PWD=123456") :
  ODBC connection failed
> 

检查系统ODBC版本和R语言版本,做到一一对应。例如64位R语言运行环境需要使用64位ODBC连接配置。

本文完整代码如下:

> library(RODBC)
> PostgreSQLConnection <- odbcConnect("PostgreSQL35W",uid = "postgres",pwd = "123456")
> odbcDataSources()
                                             dBASE Files                                              Excel Files 
   "Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)" "Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)" 
                                      MS Access Database                                   Visio Database Samples 
              "Microsoft Access Driver (*.mdb, *.accdb)"                        "Microsoft Access Driver (*.mdb)" 
                                           PostgreSQL35W                                             PostgreSQL30 
                               "PostgreSQL Unicode(x64)"                                   "PostgreSQL ANSI(x64)" 
                                            "SQL Server" 
> SQLresult <- sqlQuery(PostgreSQLConnection,"select * from User")
> SQLresult 
      user
1 postgres
> 

注意:切换数据库需要在ODBC中新增用户或系统DSN,使用DSN已经选中数据库,无法直接切换数据库。

转载于:https://my.oschina.net/u/1011130/blog/1549033

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值