I need to create a Data Step View for an existing dataset. This view should not be require that one assign the physical path of the existing dataset to a specific Libref.
I need Data Step equivalent of following PROC SQL View:
Libname ViewOut "<physical path of view output library>" disp=shr;
PROC SQL
CREATE VIEW ViewOut.DataSetName as
SELECT * FROM XYZ123.DataSetName
USING LIBNAME XYZ123 "<physical path of existing output dataset>"
DISP=SHR WAIT=999;
QUIT;
In the above PROC SQL View, the physical path of the dataset is included within the view, so, if the one has access to the view, he/she does not need to know where the actual dataset is.
Thanks in anticipation!
A data step view is compiled before being stored as a .sas7bvew file, so it can't be dynamic after that, with the exception of changing the physical path for a libname. So what you want to do is not possible.
SQL views, OTOH, are stored as program code and executed with proc sql at runtime.
I don't believe that is possible as such in SAS, they only implement ANSI SQL. What is it your trying to do, from that code you just create a view of a dataset, which is database thinking. SAS references data with libnames, so effectively the same code would be:
libname dataloc "<physical_path>";
I.e. point the library reference to where the data is. That is all you need. If you need further complicated views then you need the libref and the code.
A data step view is compiled before being stored as a .sas7bvew file, so it can't be dynamic after that, with the exception of changing the physical path for a libname. So what you want to do is not possible.
SQL views, OTOH, are stored as program code and executed with proc sql at runtime.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.