Функция metadata_newobj в SAS 9.2 имеет ошибку? - PullRequest
0 голосов
/ 10 апреля 2009

У меня есть приложение SAS, которое я тестирую с помощью недавно выпущенного SAS 9.2. У меня есть вызов функции metadat_newobj для создания нового объекта библиотеки в хранилище метаданных SAS:

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 ]

1 голос
/ 13 апреля 2009

Это сработало для меня. Исходя из приведенного вами примера, я бы предложил поместить цитаты вокруг NAME. Также, возможно, используйте оператор длины для настройки URI до запуска metadata_newobj. В противном случае, в интересах совместного использования, дайте нам знать, если вы решите его с помощью другой техники.

Вот что я пробежал:

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
0 голосов
/ 15 апреля 2009

Я не нашел ничего, что могло бы предположить, что metadata_newobj изменился в новой версии. Однако он просто отказался работать на меня. Поэтому я преобразовал свои функции в PROC METADATA, и теперь он работает в SAS 9.1.3 и SAS 9.2

Спасибо всем.

...