1
이는 오류 코드입니다
:SAS 데이터 통합 : SAP 테이블 추출물 오류
Line 115: ERROR: RFC_ERROR_SYSTEM_FAILURE Error in module RSQL of the database interface. NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements. `
오류 로그 :
NOTE: Libref SAPENG was successfully assigned as follows:
Engine: R3
Physical Name: PRORELOC
101 %rcSet(&syslibrc);
102
103 %let etls_recnt = 0;
104 %macro etls_recordCheck;
105 %let etls_recCheckExist = %eval(%sysfunc(exist(SAPEng.CDPOS, DATA)) or
106 %sysfunc(exist(SAPEng.CDPOS, VIEW)));
107
108 %if (&etls_recCheckExist) %then
109 %do;
110 proc sql noprint;
111 select count(*) into :etls_recnt from SAPEng.CDPOS;
112 quit;
113 %end;
114 %mend etls_recordCheck;
115 %etls_recordCheck;
MPRINT(ETLS_RECORDCHECK): proc sql noprint;
MPRINT(ETLS_RECORDCHECK): select count(*) into :etls_recnt from SAPEng.CDPOS;
ERROR: RFC_ERROR_SYSTEM_FAILURE
Error in module RSQL of the database interface.
어떤 생각이 왜 이런 일이? 추출하려고하는 표를 CDPOS라고합니다. 다른 SAP 테이블에 오류가 없습니다.
Gensius, SAS 코드는 괜찮은 것처럼 보이지만 INTO를 사용하려고하면 연결 문제가 발생하여 매크로 변수 ETLS_RECNT를 생성 할 수 있습니다. 그렇다면 SQL 코드를 변경하여 단일 열 ETLS_RECNT 및 개수가있는 단일 행이있는 테이블을 만든 다음 데이터 단계 내에서 call symput을 사용하여 매크로 변수를 만듭니다. – RWill