DATA Step, Macro, Functions and more

Proc SQL pass-through with Excel file

Reply
Regular Contributor
Posts: 196

Proc SQL pass-through with Excel file

I'm trying to access an Excel workbook called report.xlsb using Proc SQL pass-through.
How do I reference a sheet in the workbook called I&I?
Thank you.

proc sql dquote=ansi;
connect to excel (path="C:\Users\report.xlsb");
create table work.capii as
select * from connection to excel
(select * from I&I);
disconnect from excel;
quit;

Contributor
Posts: 65

Re: Proc SQL pass-through with Excel file

Do you have to use pass-through? I couldn't get it to work either, and it doesn't look like you received any responses. But if you can use libname access rather than pass-thru, the below code works (9.3 on Win 7 32-bit):

libname myxl Excel "C:\Users\report.xlsb";

proc sql;

create table work.capii as

select * from myxl.'I&I$'n;

quit;

libname myxl clear;

HTH,

Karl

Contributor
Posts: 65

Re: Proc SQL pass-through with Excel file

Ah, I remembered as soon as I hit "reply". There's a special character ($) in Excel worksheet names. In SAS, you deal with that using a name literal, as my previous reply indicates. But that doesn't work in SQL. Rather, you quote table names with square brackets. Your original post works for me if I change:

I&I

to:

[I&I$]

Try that and let me know.

Karl

Regular Contributor
Posts: 196

Re: Proc SQL pass-through with Excel file

Yes, [I&I$] is correct.

I want to tag your answer as correct, but I can't find that option for some reason.

Ask a Question
Discussion stats
  • 3 replies
  • 214 views
  • 0 likes
  • 2 in conversation