mirror of
https://github.com/sasjs/core.git
synced 2025-12-10 14:04:36 +00:00
53 lines
1.6 KiB
SAS
53 lines
1.6 KiB
SAS
/**
|
|
@file mp_dictionary.sas
|
|
@brief Creates a portal (libref) into the SQL Dictionary Views
|
|
@details Provide a libref and the macro will create a series of views against
|
|
each view in the special PROC SQL dictionary libref.
|
|
|
|
This is useful if you would like to visualise (navigate) the views in a SAS
|
|
client such as Base SAS, Enterprise Guide, or Studio (or [Data Controller](
|
|
https://datacontroller.io)).
|
|
|
|
It works by extracting the dictionary.dictionaries view into
|
|
YOURLIB.dictionaries, then uses that to create a YOURLIB.{viewName} for every
|
|
other dictionary.view, eg:
|
|
|
|
proc sql;
|
|
create view YOURLIB.columns as select * from dictionary.columns;
|
|
|
|
Usage:
|
|
|
|
libname demo "/lib/directory";
|
|
%mp_dictionary(lib=demo)
|
|
|
|
Or, to just create them in WORK:
|
|
|
|
%mp_dictionary()
|
|
|
|
If you'd just like to browse the dictionary data model, you can also check
|
|
out [this article](https://rawsas.com/dictionary-of-dictionaries/).
|
|
|
|

|
|
|
|
@param [in] lib= (WORK) The libref in which to create the views
|
|
|
|
<h4> Related Files </h4>
|
|
@li mp_dictionary.test.sas
|
|
|
|
@version 9.2
|
|
@author Allan Bowe
|
|
|
|
**/
|
|
|
|
%macro mp_dictionary(lib=WORK)/*/STORE SOURCE*/;
|
|
%local list i mem;
|
|
proc sql noprint;
|
|
create view &lib..dictionaries as select * from dictionary.dictionaries;
|
|
select distinct memname into: list separated by ' ' from &lib..dictionaries;
|
|
%do i=1 %to %sysfunc(countw(&list,%str( )));
|
|
%let mem=%scan(&list,&i,%str( ));
|
|
create view &lib..&mem as select * from dictionary.&mem;
|
|
%end;
|
|
quit;
|
|
%mend mp_dictionary;
|