I always use the dictionary tables versus using proc contents. I use this a lot for creating data dictionaries for the programs. Something like this: Proc sql; select * from dictionary.columns where libname= 'WORK' /*is always uppercase*/ and memname='DATASETNAME' /* is always upcase */ ... ; quit; Note that select * from dictionary.columns tell you about the columns in the table like length, type, format, informat, etc. while select * from dictionary.tables gives the number of logical obs (nlobs) and the number of columns/variables in the table/dataset/database table.
... View more