문제

새로 출시 된 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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top