в функции metadata_newobj в SAS 9.2 есть ошибка?
-
09-09-2019 - |
Вопрос
У меня есть приложение 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
Спасибо всем.
Другие советы
У меня это сработало.Основываясь на приведенном вами примере, я бы предложил заключить ИМЯ в кавычки.Также, возможно, используйте оператор length для настройки 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