How to get details of metadata objects in SAS

后端 未结 2 556
面向向阳花
面向向阳花 2021-01-24 18:33

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 sugge

2条回答
  •  悲&欢浪女
    2021-01-24 18:50

    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;
    

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

提交回复
热议问题