Dictionary tabuľky
Zjednodušene môžeme povedať, že DICTIONARY tabuľky obsahujú informácie o aktuálne spustenej SAS session (napr. zoznam namapovaných datasetov v knižniciach, zoznam skompilovaných makier v pamäti a pod.)
DICTIONARY tabuľky sú určené len na čítanie a vzhľadom k tomu, že obsahom popisujú aktuálny stav spustenej SAS session, tak pri každom spustení aktualizujú svoj obsah. Preto je niekedy výhodné vytvoriť si permanentný dataset z príslušnej DICTIONARY tabuľky, ak sa nám v kóde často opakuje prístup do tejto tabuľky.
DICTIONARY tabuľky sú umiestnené v knižnici Sashelp v SQL pohľadoch, ktorých názov sa obligátne začína písmenom v a pokračuje podľa obsahu konkrétnej DICTIONARY tabuľky (napr. vcolumn, vtable, atď).
Môžeme k nim pristupovať dvoma spôsobmi:
1.pomocou Data Stepu, načítaním predpripraveného SQL pohľadu s príslušným názvom priamo z knižnice SASHELP.
Príklad: čítanie dát z DICTIONARY tabuľky vcolumn

2.adresovaním v procedúre SQL cez knižnicu DICTIONARY, za ktorou nasleduje názov DICTIONARY tabuľky.
Príklad: čítanie dát z DICTIONARY tabuľky

V nasledujúcej tabuľke sa nachádza zoznam niektorých DICTIONARY tabuliek s príslušnými názvami pre použitie v SQL procedúre ako aj pre použitie v datastepe.
| Meno tabuľky [SQL procedúra] |
Obsah |
Meno pohľadu [DATASTEP] |
| DICTIONARY.COLUMNS |
Zoznam stĺpcov v príslušných datasetoch |
SASHELP.VCOLUMN |
| DICTIONARY.DICTIONARIES |
Zoznam všetkých DICTIONARY tabuliek |
SASHELP.VDCTNRY |
| DICTIONARY.INDEXES |
Existujúce indexy pre datasety |
SASHELP.VINDEX |
| DICTIONARY.MEMBERS |
SAS súbory |
SASHELP.VMEMBER |
| DICTIONARY.OPTIONS |
Aktuálne hodnoty SAS systémových nastavení |
SASHELP.VOPTION |
| DICTIONARY.STYLES |
ODS štýly |
SASHELP.VSTYLE |
| DICTIONARY.TABLES |
SAS datasety a SQL pohľady |
SASHELP.VTABLE |
Presnejšie informácie o všetkých tabuľkách, ich názvoch a obsahu sa nachádzajú v Helpe a nebudeme sa im tu podrobnejšie venovať.
Radšej si ukážeme na konkrétnej úlohe využitie DICTIONARY tabuľky v praxi.
Vytvoríme si program, ktorý zmaže datasety staršie ako 1 mesiac.
Na túto úlohu využijeme DICTIONARY tabuľku TABLES. Táto tabuľka obsahuje stĺpec CRDATE, ktorý obsahuje dátumovú pečiatku dňa vytvorenia daného datasetu. Ďalší stĺpec, ktorý by sme mohli použiť je MODATE s dátumovou pečiatkou dňa poslednej zmeny datasetu. Pre jednoduchosť však použijeme CRDATE.
CRDATE a MODATE sa dajú veľmi šikovne použiť pri údržbe množiny datasetov, ktoré sú generované pravidelne, povedzme na dennej, týždennej alebo mesačnej báze. Informáciu o ich vzniku, alebo poslednej úprave teda môžeme získať zo spomínanej premennej CRDATE/MODATE načítaním z SQL pohľadu v SASHELP.VTABLE alebo pomocou SQL procedúry adresovanej cez DICTIONARY.TABLES.
V nasledujúcom kóde realizujeme práve výber takých datasetov z knižnice WORK, ktoré boli vytvorené dávnejšie ako pred 27 dňami. Takéto datasety budú následne vymazané.

Čo môže byť trochu mätúce je, že SAS používa pre tieto dve premenné dva rôzne tvary názvov. Ak používate funkciu ATTRN() na získanie číselnej informácie o datasete namiesto MODATE použijeme MODTE a namiesto CRDATE použijeme CRDTE.
|