Вопрос

У меня есть приложение 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top