Rstudio链接Oracle问题解决
背景
今天学习到R语言时涉及到需要使用Rstudio和数据库连接,因为在学校使用的Oracle关系数据库,所以就试了试整个过程还遇到了一点点问题,所以给后面遇到同样的问题的同学提供自己的解决方法。
问题:
1.我直接按照书上的代码进行连接数据库(没有任何准备工作)然后问题:显然是问题是没有数据源名称和默认的驱动程序
解决办法:
1.打开RGui界面然后选择程序包安装程序,选择中国Beijing的镜像后选择RODBC程序包并安装。
2.安装成功之后在命令行运行odbc32.exe,结果如图:
3.接下来需要去配置我们的ODBC管理器选择添加,我选的是正在使用的oracle关系数据库。
4.然后对我们的ODBC driver进行设置。第一行数据库名字(自己取,记住就行),第二行描述可不填写(随便),第三行Server name 我选择的ORCL,USER ID就说你本地数据库账号,输入之后可以点击右侧的尝试连接(输入账号和密码)。如果成功那就大功告成了,失败那就检查自己是否配置正确。
问题:本以为下载了需要的程序包,配置好了ODBC数据源管理程序,就可以顺利登陆进行数据库表的查询等操作,然后执行查询语句之后如图(****是自己的密码):
Error in odbcFetchRows(channel, max = max, buffsize = buffsize, nullstring = nullstring, : 不能有负长度矢量
解决办法:
因为RODBC连接oracle时与连接mysql不同,默认情况下sqlQuery对返回结果有行数限制,最多返回256行,超过时报错。所以设置believeNRows=FALSE,解除对行数的限制就可以了。