Die Datenquelle ist der SAS-Metadatenserver selbst. Die Tabelle `work.libinfo` wird vollständig durch das Skript generiert, indem Metadaten über spezifische Funktionen wie `metadata_resolve` und `metadata_getnobj` abgefragt werden. Es werden keine externen Daten gelesen.
1 Codeblock
OPTIONS
Erklärung : Dieser Block konfiguriert die Verbindungsparameter zum SAS-Metadatenserver. Er definiert die Serveradresse, den Port, die Benutzeranmeldeinformationen, das zu verwendende Repository und das Kommunikationsprotokoll.
Erklärung : Dieser DATA STEP erstellt die Tabelle `work.libinfo`. Er initialisiert die Variablen und verwendet dann die Funktion `metadata_resolve`, um alle SAS-Bibliotheken in den Metadaten zu finden. Hinweis: Die Abfrage `obj` enthält eine Dateireferenz, die für eine Metadatenabfrage ungültig zu sein scheint. Für jede gefundene Bibliothek durchläuft er eine Schleife, um deren Eigenschaften (`metadata_getattr`) zu extrahieren, und sucht anschließend über eine zweite `metadata_resolve`-Abfrage nach zugehörigen physischen Tabellen. Werden Tabellen gefunden, werden deren Namen extrahiert und eine Zeile in die Ausgabetabelle `work.libinfo` mit dem Libref, dem Bibliotheksnamen und dem Tabellennamen geschrieben.
Kopiert!
data work.libinfo;
/*declare and initialize variables */
length
type $ 20
lib_ref $ 8
lib_uri lib_name app_uri app_name dir_uri tab_uri tab_name $ 50
id lib_id $ 17
path $ 255;
keep lib_ref lib_name tab_name;
call missing(of _character_);
/* Define library search parameters. */
obj="omsobj:SASLibrary? @code_sas_json/RFValid.json contains '.'";
/* Search Metadata for libraries */
libcount=metadata_resolve(obj,type,id);
put "INFO: Found " libcount "libraries.";
/* for each library found, extract name and associated */
/* properties (first associated application server, path) */
if libcount > 0 then do n=1 to libcount;
rc=metadata_getnobj(obj,n,lib_uri);
rc=metadata_getattr(lib_uri,"Name",lib_name);
rc=metadata_getattr(lib_uri,"Id",lib_id);
rc=metadata_getattr(lib_uri,"Libref",lib_ref);
rc=metadata_getnasn(lib_uri,"DeployedComponents",1,app_uri);
rc=metadata_getattr(app_uri,"Name",app_name);
rc=metadata_getnasn(lib_uri,"UsingPackages",1,dir_uri);
rc=metadata_getattr(dir_uri,"DirectoryName",path);
/* Define a query to search for any tables */
/* associated with the library in Metadata. */
tabobj="omsobj:PhysicalTable?PhysicalTable[TablePackage/SASLibrary[ @Id='"||lib_id||"']] or [TablePackage/DatabaseSchema/UsedByPackages/SASLibrary[ @Id='"||lib_id||"']]";
/* Count how many associations exist. */
tabcount=metadata_resolve(tabobj,type,id);
/* If there are any, pull the name of each one and write out the data set. */
if tabcount > 0 then do t=1 to tabcount;
rc=metadata_getnobj(tabobj,t,tab_uri);
rc=metadata_getattr(tab_uri,"Name",tab_name);
output; /* Push results to table */
end;
call missing (path); /* clear path variable. */
end;
else put "INFO: No libraries to resolve.";
run;
tabobj="omsobj:PhysicalTable?PhysicalTable[TablePackage/SASLibrary[ @Id='"||lib_id||"']] or [TablePackage/DatabaseSchema/UsedByPackages/SASLibrary[ @Id='"||lib_id||"']]";
38
39
/* Count how many associations exist. */
40
41
tabcount=metadata_resolve(tabobj,type,id);
42
43
/* If there are any, pull the name of each one and write out the data set. */
44
45
IF tabcount > 0 THENDO t=1 to tabcount;
46
rc=metadata_getnobj(tabobj,t,tab_uri);
47
rc=metadata_getattr(tab_uri,"Name",tab_name);
48
OUTPUT; /* Push results to table */
49
END;
50
call missing (path); /* clear path variable. */
51
END;
52
ELSE put "INFO: No libraries to resolve.";
53
RUN;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.