本文介绍了如何获取 SAS 中元数据对象的详细信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个来自我的存储库的元数据对象列表.我已经获取了所有 SASLibrary、PhysicalTable、Jobs 对象.现在我需要获取他们的所有详细信息.有人可以建议我怎么做吗?我是 SAS DI 的新手,需要使用 SAS 代码获取详细信息.谢谢

I have a list of metadata objects from my repository. I've fetched all SASLibrary, PhysicalTable, Jobs objects. Now I need to fetch all their details. Can someone please suggest how can I do that? I am new to SAS DI and need to fetch the details using SAS code.Thanks

推荐答案

好的,假设您有一个包含这些对象的数据集 (have),并且 uri 存储在名为 uri 那么以下内容就足够了:

ok, assuming you have a dataset (have) which contains those objects, and that the uri is stored in a variable called uri then the following should suffice:

data associations;
  keep assoc assocuri name;
  length assoc assocuri name $256;
  set have;
  rc1=1;n1=1;
  do while(rc1>0);
    /* Walk through all possible associations of this object. */
    rc1=metadata_getnasl(uri,n1,assoc);
    rc2=1;n2=1;
    do while(rc2>0);
      /* Walk through all the associations on this machine object. */
      rc2=metadata_getnasn(uri,trim(assoc),n2,assocuri);
      if (rc2>0) then do;
        rc3=metadata_getattr(assocuri,"Name",name);
        output;
      end;
      call missing(name,assocuri);
      put arc= rc2=;
      n2+1;
    end;
    n1+1;
  end;
run;
proc sort data=associations;
  by assoc name;
run;

proc sql;
create table groupassoc as
  select assoc, count(*) as cnt
  from associations
  group by 1;

data attrprop;
  keep type name value;
  length type $4 name $256 value $32767;
  set have;
  rc1=1;n1=1;type='Prop';
  do while(rc1>0);
    rc1=metadata_getnprp(uri,n1,name,value);
    if rc1>0 then output;
    n1+1;
  end;
  rc1=1;n1=1;type='Attr';
  do while(rc1>0);
    rc1=metadata_getnatr(uri,n1,name,value);
    if rc1>0 then output;
    n1+1;
  end;
run;
proc sort data=attrprop;
  by type name;
run;

也可以使用 Base SAS 中的 metabrowse 获取此信息.

This information can also be obtained using metabrowse in Base SAS.

这篇关于如何获取 SAS 中元数据对象的详细信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 19:28