我已经使用此代码来获取所有SAS库,物理表和作业的对象列表。 https://github.com/Boemska/macrocore/blob/master/meta/mm_getobjects.sas 我现在需要获取这些对象的详细信息, 就像图书馆一样-我需要它们的libname和完整路径, Teradata库-架构名称,库路径 物理表-位置和其他属性 职位-位置和其他属性。
对于如何报告或报告哪些属性我不太熟悉,但是我绝对需要它们的路径和属性。 谢谢。
答案 0 :(得分:1)
您所引用的示例使用的是proc metadata
,它返回您需要理解和处理的XML。真正的问题是您必须学习如何构建输入XML来构建元数据查询,这是一件相当复杂的事情。
也许更直接的方法是使用数据步元数据功能,例如here。
METABROWSE命令对于理解元数据对象关系(如果您有权访问SAS Foundation)很有用,请参阅here
答案 1 :(得分:0)
您要查询的属性将根据您要检查的库引擎而变化。
以下宏将为BASE,OLEDB,ODBC和POSTGRES引擎生成一个libname:
https://github.com/Boemska/macrocore/blob/master/meta/mm_assigndirectlib.sas
根据以下答案,可以使用直接属性:How to get details of metadata objects in SAS
根据this answer,文件夹路径可用:
%let metauri=OMSOBJ:PhysicalTable\A5HOSDWY.BE0006N9;
/* get metadata paths */
data ;
length tree_path $500 tree_uri parent_uri parent_name $200;
call missing(tree_path,tree_uri,parent_uri,parent_name);
drop tree_uri parent_uri parent_name rc ;
uri="&metauri";
rc=metadata_getnasn(uri,"Trees",1,tree_uri);
rc=metadata_getattr(tree_uri,"Name",tree_path);
do while (metadata_getnasn(tree_uri,"ParentTree",1,parent_uri)>0);
rc=metadata_getattr(parent_uri,"Name",parent_name);
tree_path=strip(parent_name)||'/'||strip(tree_path);
tree_uri=parent_uri;
end;
tree_path='/'||strip(tree_path);
run;