2016-11-07 3 views
1

Ich habe den unten stehenden Code erstellt, um eine Liste von SAS-registrierten Tabellen aus Metadaten abzurufen. Es funktioniert gut, aber dauert eine lange Zeit aufgrund des großen Volumens von Arbeitstische zu laufen (a subtype von PhysicalTable):Metadaten-URI anpassen, um WorkTable-Metadaten auszuschließen Typ

data work.tables (keep=uri name); 
    length uri name $256; 
    n=1; 
    do while(metadata_getnobj("omsobj:[email protected] 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; 

Gibt es eine Möglichkeit, die uri einzustellen, so dass der Arbeitstisch Typ in den Metadaten ausgeschlossen werden kann, sich selbst abfragen?

zB wie folgt (nicht funktioniert):

omsobj:[email protected] contains '.' and @MetadataType ne 'WorkTable' 

Antwort

1

Also folgendes URI hat den Trick, obwohl es nur 20% schneller war:

omsobj:[email protected] contains '.' and @PublicType = 'Table' 

Dies kann natürlich verkürzt werden zu:

omsobj:[email protected] = 'Table' 

Was extra 0,2 Sekunden abrasiert.

Verwandte Themen