将R中的基本SAS与RODBC进行比较,以访问ORACLE SQl数据库。
我试图访问ORACLE SQL数据库。如果我使用以下代码在SAS中运行它:
LIBNAME LIBNAME ORACLE SCHEMA=SCHEMA PATH="*****";
PROC SQL ;
CREATE TABLE work.eval_view AS
SELECT *
FROM LIBNAME.VW_EVALUATION
ORDER BY ***** ;
QUIT;
如果我运行此代码,我会收到153777次观察,这是我所期望的。
然后我想在R中运行此代码。我使用RODBC库。这是我运行的代码:
connect <- odbcConnect(dsn='****', rows_at_time =1, believeNRows=FALSE)
evaluation <- sqlQuery(connect, "SELECT * FROM ****.vw_evaluation")
但我得到了4239次观察。确实进行的实际观察结果与从SAS进入的观察结果相同,只是大多数观察结果都缺失了。
如果我更改了rows_at_time
输入,我会改变观察量。 100
一次只能得到10219个观测结果,110
一次得到的观测值较少,只有10120个观测值。
有没有人对如何解决此问题有任何建议?似乎其他线程中的人建议更改rows_at_time,但这对我来说并不是那么好用。
答案 0 :(得分:0)
我会通过使用ROracle
包进行测试来解决问题,该包使用DBI
包运行以连接到数据库。我无法访问要测试的Oracle数据库,但尝试使用第二个程序包可以让您知道数据库界面或其他问题是否存在问题。
请注意,ROracle
似乎由Oracle本身维护,因此希望得到很好的支持。我已经使用DBI
与MySQL(RMySQL
)和SQLite(RSQLite
)数据库进行了大量的交互,并且没有问题返回非常大的数据集。< / p>
答案 1 :(得分:0)
Parfait是对的!问题是评论部分&#39;包含长字符串的列。一旦没有导入该列,我得到了我预期的所有行。