SAS Slovakia
Tlač Akcie Služby Pracovné miesta Kontakt Hľadaj
Home Produkty a riešenia Referencie Partneri O nás Customer Support www.sas.com
Special report
 

Dictionary tabuľky

Čo sú 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é.

CRDATE/CRDTE a MODATE/MODTE

Č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.

(Ivan Škula)
The Power to Know
   Contact Us      Worldwide Sites     Search     Site Map     RSS Feeds     Terms of Use    Privacy Statement   Copyright © 2008 SAS Institute Inc. All Rights Reserved