SAS 9.2의 Metadata_NewoBj 함수는 버그가 있습니까?
-
09-09-2019 - |
문제
새로 출시 된 SAS 9.2로 테스트하는 SAS 응용 프로그램이 있습니다. SAS 메타 데이터 저장소에서 새 라이브러리 개체를 생성하기 위해 Metadat_NewoBJ 함수를 호출합니다.
rc = metadata_newobj( "SASLibrary", URI, Name );
9.1.3에서 함수가 성공적으로 실행되면 (RC = 0), URI 변수는 새로 생성 된 라이브러리 개체의 URI로 채워졌습니다.
SAS 9.2에서는 반환 값이 0 (성공)이고 라이브러리 개체가 생성되지만 (관리 콘솔을 사용하여 수동으로 확인) URI 변수는 빈 상태를 유지하므로 속성 등을 설정하기위한 후속 작업이 실패합니다.
두 버전 모두에 대한 문서는 URI를이 기능의 출력 매개 변수로 나열합니다.
누구든지 이것에 대한 지식이 있습니까?
편집하다: 내가 사용했던 코드는 다음과 같습니다.
put libraryName=;
rc = metadata_newobj("SASLibrary", libraryUri, libraryName);
if rc ne 0 then do;
/* Error handler */
return;
end;
put libraryUri=;
그리고 출력 :
libraryName=HRLIB10
libraryUri=
나는 이것을 사용하여 작업하려고 노력하고 있습니다 PROC METADATA
대신, 그것은 작동하는 것 같습니다. :
#2 편집 : 나는 이것이 SCL 코드 내에 있다는 것을 언급하지 않았다는 것을 깨달았습니다.
해결책 2
메타 데이터가 새 버전에서 변경되었음을 암시하는 것은 찾지 못했습니다. 그러나 그것은 단지 나를 위해 일하기를 거부했습니다. 그래서 사용하도록 기능을 변환했습니다 PROC METADATA
그리고 이제 SAS 9.1.3에서 작동합니다 그리고 SAS 9.2
감사합니다.
다른 팁
그것은 나를 위해 일했다. 당신이 준 예를 바탕으로 나는 이름에 따옴표를 넣는 것이 좋습니다. 또한 metadata_newobj를 실행하기 전에 길이 문을 사용하여 URI를 설정할 수 있습니다. 그렇지 않으면 공유를 위해 다른 기술로 해결되면 알려주십시오.
내가 실행 한 내용은 다음과 같습니다.
data _null_;
length uri $256;
rc=0;
rc=metadata_newobj("SASLibrary",
uri,
"testlib");
put uri=;
run;
내 기록은 다음과 같습니다.
NOTE: Variable uri is uninitialized.
uri=OMSOBJ:SASLibrary\A5M6IOB0.AZ000007
NOTE: DATA statement used (Total process time):
real time 0.07 seconds
cpu time 0.01 seconds