Функция metadata_newobj в SAS 9.2 имеет ошибку?
У меня есть приложение 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 ответа
Я не нашел ничего, что могло бы предположить, что metadata_newobj изменился в новой версии. Однако он просто отказался работать на меня. Поэтому я преобразовал свои функции для использования PROC METADATA
и теперь он работает в SAS 9.1.3 и SAS 9.2
Спасибо всем.
Это сработало для меня. На основании приведенного вами примера я бы предложил поместить цитаты вокруг 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