Vergleich der Basis-SAS mit RODBC in R für den Zugriff auf ORACLE SQl-Datenbanken.Tausende von Beobachtungen mit RODBC verlieren
Ich versuche, auf eine ORACLE SQL-Datenbank zuzugreifen. Wenn ich dies in SAS mit diesem Code ausführen:
LIBNAME LIBNAME ORACLE SCHEMA=SCHEMA PATH="*****";
PROC SQL ;
CREATE TABLE work.eval_view AS
SELECT *
FROM LIBNAME.VW_EVALUATION
ORDER BY ***** ;
QUIT;
Wenn ich diesen Code ausführen, erhalte ich 153.777 Beobachtungen, die, was ich erwarten würde.
Dann möchte ich diesen Code in R ausführen. Ich verwende die RODBC-Bibliothek. Dies ist der Code, den ich verwende:
connect <- odbcConnect(dsn='****', rows_at_time =1, believeNRows=FALSE)
evaluation <- sqlQuery(connect, "SELECT * FROM ****.vw_evaluation")
Aber ich bekomme 4239 Beobachtungen. Die tatsächlichen Beobachtungen, die kommen, sind die gleichen wie die, die von SAS kommen, nur die Mehrheit der Beobachtungen fehlt.
Wenn ich den rows_at_time
Eingang ändere, ändere ich die Anzahl der Beobachtungen, die ich bekomme. 100
zu einer Zeit bekomme ich 10219 Beobachtungen, 110
zu einer Zeit bekomme ich weniger Beobachtungen, nur 10120 Beobachtungen.
Hat jemand irgendwelche Vorschläge, wie Sie dieses Problem beheben können? Es scheint, dass Leute in anderen Threads vorgeschlagen haben, rows_at_time zu ändern, aber das funktioniert nicht so gut für mich.
Wie breit ist Ihr Tisch und haben Sie sehr große Textfelder? Dies kann Auswirkungen auf die Speicherzuordnung haben. Versuchen Sie, einige Spalten auszuwählen. Verwenden Sie 'odbcQuery()' und 'sqlGetResults()' über 'sqlQuery()' (ein Wrapper für die beiden). Spiele mit den Argumenten wie * believeNRows * und * max = 0 *. Versuchen Sie sogar 'sqlTable()' über den Abfrageaufruf. Siehe Seite 18 von [RODBC-Dokumentation] (https://cran.r-project.org/web/packages/RODBC/RODBC.pdf). – Parfait
Das große Textfeld war der Schuldige, vielen Dank. – dncrwlye