2011-08-15 20 views
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 테이블에 오류가 없습니다.

+1

Gensius, SAS 코드는 괜찮은 것처럼 보이지만 INTO를 사용하려고하면 연결 문제가 발생하여 매크로 변수 ETLS_RECNT를 생성 할 수 있습니다. 그렇다면 SQL 코드를 변경하여 단일 열 ETLS_RECNT 및 개수가있는 단일 행이있는 테이블을 만든 다음 데이터 단계 내에서 call symput을 사용하여 매크로 변수를 만듭니다. – RWill

답변

0

RFC_ERROR_SYSTEM_FAILURE는 RFC 호출이 잘못되어 일반적으로 짧은 덤프 (트랜잭션 ST22) 및/또는 시스템 로그 항목 (SM21)을 생성한다는 것을 의미합니다. 정확히 무엇이 잘못되었는지 확인하려면이 로그를 확인하십시오.