SAS数据字典访问

访问数据字典方法如下:

1.直接用SQL语句访问Dictionary table
2.访问SAShelp View

表名

包含信息

视图名

DICTIONARY.CATALOGS

SAS目录册及所包含的条目

SASHELP.VCATALG

DICTIONARY.COLUMNS

列(或变量)及其特征

SASHELP.VCOLUMN

DICTIONARY.DICTIONARIES

所有表词典

SASHELP.VDCTNRY

DICTIONARY.EXTFILES

文件标识名和外部文件物理存储地址

SASHELP.VEXTFL

DICTIONARY.INDEXES

SAS数据集索引

SASHELP.VINDEX

DICTIONARY.MEMBERS

SAS数据集

SASHELP.VMEMBER

DICTIONARY.OPTIONS

目前设定的SAS系统选项

SASHELP.VOPTION

DICTIONARY.STYLES

ODS类型

SASHELP.VSTYLE

DICTIONARY.TABLES

SAS数据文件和视图

SASHELP.VTABLE

DICTIONARY.VIEWS

SAS数据视图

SASHELP.VVIEW

 

打开explorer window,在SASHELP这个library下,以V开头的视图实际上是Dictionary table内容的复制。如
proc sql;describe view sashelp.voption;quit;
   可以看到voption这个视图的内容来自dictionary.options。
   而对于View,除了SQL,直接用data步或proc步都可以访问。如
data test2;
set sashelp.vcolumn;
where libname="WORK" and memname="TEST";
run;

或者
proc contents data=sashelp.voption;
run;

或者在command栏输入viewtable sashelp.voption
Dictionary table的最常见的几个应用:
一、取出数据集的变量数和观测数
proc sql;
select nobs,nvar
into:nobs,:nvar
from dictionary.tables
where libname="WORK" and memname="TEST";
quit;
   
二、取出某一数据集的所有变量名
proc sql;
select name into :varlist
separated by " "
from dictionary.columns
where libname="WORK" and memname="TEST";
quit;
%put &varlist.;
三、取出某个library下所有数据集名
proc sql;
select memname into :dsname
separated by " "
from dictionary.tables
where libname="WORK";
quit;
四、取出所有的宏变量名
proc sql noprint;
create table macv as
select name
from dictionary.macros
where offset=0 and scope="GLOBAL";
quit;
效果同 %put _global_;

你可能感兴趣的:(数据字典)