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

时间:2016-11-07 10:17:59

标签: sas sas-metadata

我已经构建了以下代码,用于从元数据中获取SAS注册表的列表。它工作正常,但由于WorkTables的数量很大(一个{3}}的PhysicalTable),需要很长时间才能运行:

data work.tables (keep=uri name);
  length uri name $256;
  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'

1 个答案:

答案 0 :(得分:1)

所以下面的URI可以解决这个问题,尽管速度只提高了20%:

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

这当然可以缩短为:

omsobj:PhysicalTable?@PublicType = 'Table'

削减了0.2秒。