Сравнение базы SAS с RODBC в R для доступа к базам данных ORACLE SQl.Исключение тысяч наблюдений с использованием RODBC
Я пытаюсь получить доступ к базе данных 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, но это не так хорошо работает для меня.
Насколько широк ваш стол и у вас очень большие текстовые поля? Это может повлиять на распределение памяти. Попробуйте выбрать несколько столбцов. Подумайте об использовании 'odbcQuery()' и 'sqlGetResults()' over 'sqlQuery()' (оболочка для двух). Играйте с такими аргами, как * believeNRows * и * max = 0 *. Даже попробуйте 'sqlTable()' над вызовом запроса. См. Стр. 18 из [документации RODBC] (https://cran.r-project.org/web/packages/RODBC/RODBC.pdf). – Parfait
Большое текстовое поле было преступником, спасибо большое. – dncrwlye