Hi, I am trying to use the PROC SQL pass through facility to import a .XML file. Below is an example of something I use for EXCEL files, is there a .XML equivalent?
proc sql noprint;
connect to excel (path = "\\MyArea\My_File.xls");
create table contents as
select *
from connection to excel (select * from [Contents$]);
disconnect from excel;
quit;
The above code would pick up the tab called "Contents" and create a SAS data set call Contents.
Thanks
What version of SAS are you using?
And why do you need SQL Pass Through? Is the file in a Database?
The libname method is the suggested method.
As far as I can tell that is not using pass through. It is using the libname excel technology. What libname excel does is setup a SAS library reference to the file, and creates a dataset for each sheet it can find and process, a bit like a proc import for each sheet, with all of the problems associated with importing an Excel file. It is not pass through. Pass through is where a set of SQL statements is taken from SAS, and sent to another systems SQL processor, for example:
proc sql;
connect to oracle (..);
execute by oracle (select * from abc);
...
The "select * from abc" is sent to Oracle's SQL parser, hence it can use functions and types in the oracle system, and not ones in the SAS system.
Now your second question, regarding access to XML. This is done by map files, you can use the free XMLMapper tool from SAS, but basically you need to provide a "spec" for the XML document, i.e. how the file is supposed to be read into SAS - remember an XML file could have multiple datasets! Have a look here for example:
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.