Help using Base SAS procedures

PROC SQL Pass Through Facility for .XML

Posts: 50

PROC SQL Pass Through Facility for .XML

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;

The above code would pick up the tab called "Contents" and create a SAS data set call Contents.



Super User
Posts: 23,686

Re: PROC SQL Pass Through Facility for .XML

Posted in reply to craig159753

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.

Super User
Super User
Posts: 9,599

Re: PROC SQL Pass Through Facility for .XML

Posted in reply to craig159753

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:

Ask a Question
Discussion stats
  • 2 replies
  • 3 in conversation