元数据表的SAS文件夹路径

时间:2014-03-18 11:17:18

标签: sas metadata datastep sas-metadata

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

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

示例:

表FactPortfolio在管理控制台中具有以下fodler结构: COMMERC - >瑞典 - >公文包 - >资源 - >表

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

BR 乔纳斯

2 个答案:

答案 0 :(得分:1)

在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 ;

答案 1 :(得分:1)

这可以在您知道表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的示例代码herehere