0

我已使用此代码获取所有 SAS 库、物理表和作业的对象列表。 https://github.com/sasjs/core/blob/master/meta/mm_getobjects.sas 我现在需要获取这些对象的详细信息,例如库 - 我需要它们的库名称和完整路径,Teradata 库 - 架构名称,库路径物理表 - 位置和其他属性 工作 - 位置和其他属性。

我对我们如何报告或报告哪些属性不是很熟悉,但我绝对需要他们的路径和属性。谢谢你。

4

2 回答 2

1

您引用的示例正在使用proc metadata返回您需要理解和处理的 XML。这里真正的问题是您必须学习如何构建输入 XML 来构建元数据查询,这是一件相当复杂的事情。

也许更直接的是使用像这里这样的数据步骤元数据函数。

METABROWSE 命令有助于理解元数据对象关系(如果您有权访问 SAS Foundation),请参见此处

于 2019-05-12T12:08:32.663 回答
0

您要求的属性将根据您正在检查的库引擎而变化。

以下宏将为 BASE、OLEDB、ODBC 和 POSTGRES 引擎生成一个 libname(请注意,存储库已移动):

https://github.com/sasjs/core/blob/main/meta/mm_assigndirectlib.sas

直接属性可根据此答案获得:How to get details of metadata objects in SAS

文件夹路径可根据此答案获得:

%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;
于 2019-05-13T15:47:17.213 回答