调整元数据 URI 以排除 WorkTable 元数据类型

Adjust Metadata URI to Exclude WorkTable Metadata Type

我已经构建了下面的代码,用于从元数据中获取 SAS 注册表的列表。它工作正常但需要很长时间 运行 由于大量的 WorkTables(物理表的 subtype):

data work.tables (keep=uri name);
  length uri name 6;
  n=1;
  do while(metadata_getnobj("omsobj:PhysicalTable?@Id contains '.'",n,uri)>=0);
    n+1;
    if substr(uri,8,9)='WorkTable' then continue;
    if metadata_getattr(uri, "SASTableName", name)=0 then output;
  end;
run;

是否有任何方法可以调整 uri,以便可以在元数据查询本身中排除 WorkTable 类型?

例如如下(不起作用):

omsobj:PhysicalTable?@Id contains '.' and @MetadataType ne 'WorkTable'

所以下面的 URI 起到了作用,虽然它只快了 20%:

omsobj:PhysicalTable?@Id contains '.' and @PublicType = 'Table'

这当然可以缩短为:

omsobj:PhysicalTable?@PublicType = 'Table'

这又减少了 0.2 秒。