Help using Base SAS procedures

simple question

Reply
Occasional Contributor
Posts: 9

simple question

Brand new to SAS programming so I am taking it slow. I have an intermediate background in SQL so I have been taking existing SAS programs and using PROC SQL to attempt recreate the actions being done in the code I have been given. Back-translating if you will, like reverse engineering something in order to learn how something works. However, I am at a loss (not the first I am sure) as to why my code is not pulling from SQL tables correctly. After I set my libraries up (libname SQL oledb udl_file="C:\dir\subdir\EXAMPLE.udl"Smiley Wink, the code I have is:

data TEST;
set SQL.TEST;
run;

This runs fine and I get my variables into my work library fine. I check the work.test and everything is there and all the attributes are fine. But if I try and reproduce this using proc sql, my attributes are different from what is set in the SQL table.

proc sql;
connect to odbc (dsn=EXAMPLE);
create table TEST as select * from connection to
odbc(select * from EXAMPLE.dbo.TEST);
disconnect from odbc;
quit ;

Basically my attribute LENGTH is doubled on some of my variables and not on others. What logic am I missing here?
Frequent Contributor
Posts: 139

Re: simple question

Posted in reply to Alphanumeric
i did notice in your code that the LIBNAME names uses OLEBD to connect to SQL Server and the SQL Pass-through uses ODBC. Try using the same connection method and see what happens.

D
Occasional Contributor
Posts: 9

Re: simple question

Posted in reply to darrylovia
Thanks. Seems that was my problem.
Ask a Question
Discussion stats
  • 2 replies
  • 151 views
  • 0 likes
  • 2 in conversation