ORACLE SQl 데이터베이스에 액세스하기 위해 기본 SAS와 RODBC를 R로 비교.RODBC를 사용하여 수천 회의 관찰 결과 손실
오라클 SQL 데이터베이스에 액세스하려고합니다. 이 코드와 SAS에서 이것을 실행하는 경우 :이 코드를 실행하면
LIBNAME LIBNAME ORACLE SCHEMA=SCHEMA PATH="*****";
PROC SQL ;
CREATE TABLE work.eval_view AS
SELECT *
FROM LIBNAME.VW_EVALUATION
ORDER BY ***** ;
QUIT;
, 나는 내가 무엇을 기대 인 153,777 관찰을 얻을.
그런 다음 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을 변경하는 것이 좋습니다. 그러나 저에게는 그렇게 잘 작동하지 않습니다.
테이블이 너비가 넓고 텍스트 필드가 매우 넓습니까? 이는 메모리 할당에 영향을 미칠 수 있습니다. 몇 개의 컬럼을 선택하십시오. 'sqlQuery()'(둘에 대한 래퍼)를 통해'odbcQuery()'와'sqlGetResults()'를 사용해보십시오. * believeNRows * 및 * max = 0 *와 같은 args로 재생하십시오. 쿼리 호출을 통해'sqlTable()'을 시도해보십시오. [RODBC 문서] (https://cran.r-project.org/web/packages/RODBC/RODBC.pdf)의 18 페이지를 참조하십시오. – Parfait
커다란 텍스트 필드가 그 주범이었습니다. 정말 고마워요. – dncrwlye