我的问题与在Ubuntu中使用RODBC连接ODBC服务器和本地安装RODBC时如何指定包含和库目录有关,但我没有找到适合我的情况的答案。我想使用RODBC连接远程服务器上的SQL Server数据库。我已经安装了unixodbc和freetds,并且可以通过T-SQL在终端连接,所以连接是存在的。但是,当我尝试使用以下命令在R中连接时(所有敏感信息均已替换为***):
我已安装最新版本的freetds,即1.00.27,因此我很惊讶地发现这个库libtdsodbc.so缺失了。
这是正常的吗?您是否建议安装版本0.95.18,还是保留1.00.27并寻找缺失的库?
odbcConnect(dsn="TESTSQL", uid=***, pwd=***)
我得到:
Warning messages:
1: In RODBC::odbcDriverConnect("DSN=TESTSQL;UID=***;PWD=***") : [RODBC] ERROR: state 01000, code 0, message [unixODBC][Driver Manager]Can't open lib '/usr/local/Cellar/freetds/0.95.18/lib/libtdsodbc.so' : file not found
2: In RODBC::odbcDriverConnect("DSN=TESTSQL;UID=***;PWD=***") :
ODBC connection failed
odbc.ini文件如下:
[ODBC Data Sources]
TESTSQL = Test database
[TESTSQL]
Driver = MSSQL
Servername = ***.**.**.**
Port = **
Database = ****
TDS_Version = 8.0
我已安装最新版本的freetds,即1.00.27,因此我很惊讶地发现这个库libtdsodbc.so缺失了。
这是正常的吗?您是否建议安装版本0.95.18,还是保留1.00.27并寻找缺失的库?
libtdsodbc.so
?根据错误信息,我的猜测是它不在/usr/local/Cellar/...
下。(如果您不知道如何找到它,请尝试使用local libtdsodbc.so
或者如果失败了,则使用grep libtdsodbc.so /var/lib/dpkg/info/*list
或者如果非常绝望则使用find / -type f -iname libtdsodbc.so
。) - r2evans