问题描述
我有一个来自我的存储库的元数据对象列表.我已经获取了所有 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 中元数据对象的详细信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!