本文已安装PostgreSQL和对应ODBC连接前请检查驱动器的安装和配置。安装配置完成后如下图所示:
首先安装R语言ODBC连接工具包。R语言连接PostgreSQL还可以使用RPostgreSQL软件包。
install.packages("RODBC")
本机默认有数据库test。如下图所示
#查看可用数据源
odbcDataSources() #本文数据源名称"PostgreSQL35W"
#建立连接PostgreSQLConnection ,数据源PostgreSQL35W、用户名postgres、根据实际情况修改密码123456
PostgreSQLConnection
#需要执行SQL语句
result
#查看表
> sqlTables(PostgreSQLConnection)
TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS
1 test public User TABLE
#断开连接
odbcClose(conn)
连接过程中可能会出现报错
> PostgreSQLConnection
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
> 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
> SQLresult
user
1 postgres
>
注:需要切换数据库ODBC新用户或系统DSN,使用DSN数据库已经被选中,数据库无法直接切换。