【发布时间】:2018-03-01 00:33:02
【问题描述】:
我已经尝试连接到我的 DB2 服务器两天了,并且尝试了这里的每一篇文章,但都没有成功。
library(rJava)
library(RJDBC)
library(DBI)
#Enter the values for you database connection
dsn_driver = "com.ibm.db2.jcc.DB2Driver"
dsn_database = "D0042T04"
dsn_hostname = "DB2"
dsn_port = "50000"
dsn_protocol = "TCPIP"
dsn_uid = "db2User"
dsn_pwd = "secret!"
jcc = JDBC("com.ibm.db2.jcc.DB2Driver", "c:/development/R/db2jcc.jar");
path = "jdbc:db2://" + dsn_hostname + ":" + dsn_port + "/" + dsn_database + sep=""
jdbc_path = paste("jdbc:db2://", dsn_hostname, ":", dsn_port, "/", dsn_database, sep="");
conn = dbConnect(jcc, jdbc_path, user=dsn_uid, password=dsn_pwd)
query = "SELECT * FROM core.account FETCH FIRST 10 ROWS ONLY";
rs = dbSendQuery(conn, query);
df = fetch(rs, -1);
df
dbDisconnect(conn)
当我运行脚本时,我得到以下内容
> query = "SELECT * FROM core.account FETCH FIRST 10 ROWS ONLY;";
> rs = dbSendQuery(conn, query);
Error in dbSendQuery(conn, query) : could not find function "dbSendQuery"
【问题讨论】:
-
如果你在 rstudio 中调试(单步)你的代码,你会得到任何错误吗?您是否尝试过使用 db2jcc4.jar(不是 db2jcc.jar)?验证该 db2jcc4.jar 的路径是否有效,该文件是否存在并且是最新版本,并且是否已正确安装了 Db2 驱动程序。此外,
path = "jdbc:db2://" + dsn_hostname + ":" + dsn_port + "/" + dsn_database + sep=""行看起来像是可疑的,尽管未使用。如果您需要进一步的帮助,还请详细说明您的基本 R 版本和您的 R-studio 版本。 -
您的 dsn_hostname 的值也看起来很可疑。如果 Db2 服务器在本地机器上运行,则使用 localhost 或真实主机名。
-
我认为这一直是路径。我终于能够使用这种更简单的方法连接它。 r-bloggers.com/connecting-to-a-db2-database-from-r