元数据表的SAS文件夹路径

元数据表的SAS文件夹路径,sas,metadata,datastep,sas-metadata,Sas,Metadata,Datastep,Sas Metadata,我想知道是否有人知道如何检索元数据表的sas文件夹路径 我想列出元数据上每个表的文件夹路径 例如: 表FactPortfolio位于管理控制台中的以下fodler结构下: 商业->瑞典->投资组合->资源->表格 在sas的元数据浏览器中,如果单击表、树和父树,直到到达顶层层次结构,我就可以找到文件夹路径。但是,我希望使用SAS中的元数据数据步骤函数检索它 溴 Jonas在Base中,您可以使用sashelp表/字典视图,例如 /* SQL Dictionary */ proc sql ;

我想知道是否有人知道如何检索元数据表的sas文件夹路径

我想列出元数据上每个表的文件夹路径

例如:

表FactPortfolio位于管理控制台中的以下fodler结构下: 商业->瑞典->投资组合->资源->表格

在sas的元数据浏览器中,如果单击表、树和父树,直到到达顶层层次结构,我就可以找到文件夹路径。但是,我希望使用SAS中的元数据数据步骤函数检索它


Jonas

在Base中,您可以使用sashelp表/字典视图,例如

/* SQL Dictionary */ proc sql ; create table memlist as select * from dictionary.tables where libname='WORK' order by memname ; quit ; /* SASHELP */ data memlist ; set sashelp.vmember (where=(libname='WORK')) ; run ;
一旦您知道了表URI,就可以导出它,例如:

%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;
获取表URI的示例代码可以找到和

编辑20200920:

以下是用于获取表uri的宏:

还可以使用以下代码导出所有表及其元数据路径:

* load macros;
filename mc url "https://raw.githubusercontent.com/sasjs/core/main/all.sas";
%inc mc;

* invoke macro;
%mm_tree(root=%str(/) ,types=Table ,outds=myoutputdataset)

抱歉,这提供了库中的数据集,但没有提供库路径。您可以尝试sashelp.vslib或sashelp.vlibnam。我相信OP是在寻找表对象的元数据路径,而不是库的物理路径。。