In SAS Data Integration Studio External Files are read using the File Reader transformation, this will read out the necessary information and build a DATA Step from it. So usually there is no need to build your own transformation. If you want to read out this information in your code, then there is the SAS(R) 9.4 Language Interfaces to Metadata. The Metadata Model is described in the documentation, Information on an External file is here SAS(R) 9.4 Metadata Model: Reference To query the Metadata Server for information about Metadata Objects, one can use Proc Metadata, or you can use DATA Step functions. Find below a sample program, that will read out all External File definitions and some information about each column within a file. In order to be able to communicate with a Metadata Server you have to set the appropriate Metadata Server related SAS System Options such as METASERVER, METAUSER, METAPASS, ... If you run the program using SAS Enterprise Guide, you might already have a connection to the Metadata Server data _null_; length file_uri $ 256 file_name $ 256 file_puri $ 256 file_pname $ 256 col_uri $ 256 col_name $ 60 col_sasname $ 32 col_sastype $ 1 ; call missing(OF file_:, OF col_:); n = 1; nobj=metadata_getnobj("omsobj:ExternalTable?@Id contains '.'", n, file_uri); do i = 1 to nObj; rc = metadata_getnobj("omsobj:ExternalTable?@Id contains '.'", i, file_uri); rc = metadata_getattr(file_uri, "Name", file_name); rc = metadata_getnasn(file_uri, "OwningFile", n, file_puri); rc = metadata_getattr(file_puri, "Filename", file_pname); putlog "INFO: Table " i= rc= file_uri= file_name= file_puri= file_pname=; nCols = metadata_getnasn(file_uri, "Columns", n, col_uri); do j = 1 to nCols; rc = metadata_getnasn(file_uri, "Columns", j, col_uri); rc = metadata_getattr(col_uri, "Name", col_name); rc = metadata_getattr(col_uri, "SASColumnName", col_sasname); rc = metadata_getattr(col_uri, "SASColumnType", col_sastype); putlog "INFO: Column " j= rc= col_uri= col_name= col_sasname= col_sastype=; end; end; run;
... View more