BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
sunflower88
Calcite | Level 5

Any suggestion for this question?

 

PROC SQL;

Connect to odbc(authdomain='sql_auth' datasrc='SQLA');
CREATE TABLE MY.test AS  
SELECT * FROM CONNECTION TO odbc(

select
 A.Location_Id,
 A.Location_Name   
   
from  Location A
Where Active = 1

);
QUIT;

 

Result -

 

Location_IdLocation_Name
 FL
 OH
 IL
 HI
 CO

 

How can I see the value of Location ID which is stored in Hex format?

1 ACCEPTED SOLUTION

Accepted Solutions
SuryaKiran
Meteorite | Level 14

Try this and see results in SAS

 

PROC SQL;

Connect to odbc(authdomain='sql_auth' datasrc='SQLA');
CREATE TABLE MY.test AS  
SELECT * FROM CONNECTION TO odbc(

select
 CONVERT(INT,A.Location_Id) as Location_Id,
 A.Location_Name   
   
from  Location A
Where Active = 1

);
QUIT;

Thanks,
Suryakiran

View solution in original post

10 REPLIES 10
sunflower88
Calcite | Level 5
Any solution for PROC SQL instead of data step?
tomrvincent
Rhodochrosite | Level 12
put(v1_hex||v2_hex, $hex8.) as
v1v2_char

 

sunflower88
Calcite | Level 5

Thank you for your help!

 

However,  it  doesn't work for me......  😞

SuryaKiran
Meteorite | Level 14

Hi,

 

Which database are you connecting to? Since your using Pass-Through query use DBMS specific function to convert the values before reading them into SAS.

Eg: CONVERT(INT,0xFFFFF) in Microsoft SQL Server

Thanks,
Suryakiran
sunflower88
Calcite | Level 5

Us odbc connect to SQL database

 

Thanks for the help!

SuryaKiran
Meteorite | Level 14

Try this and see results in SAS

 

PROC SQL;

Connect to odbc(authdomain='sql_auth' datasrc='SQLA');
CREATE TABLE MY.test AS  
SELECT * FROM CONNECTION TO odbc(

select
 CONVERT(INT,A.Location_Id) as Location_Id,
 A.Location_Name   
   
from  Location A
Where Active = 1

);
QUIT;

Thanks,
Suryakiran
sunflower88
Calcite | Level 5

I got someting back, but I'm expecting something like 0x000000000000001B, instead of 53, 54, 57.

 

Any idea?

SuryaKiran
Meteorite | Level 14

Convert the Hexa to Char in database. Something like VARCHAR(MAX) instead of INT

Thanks,
Suryakiran
sunflower88
Calcite | Level 5
It works! Thank you for your help!! 🙂
How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 10 replies
  • 4601 views
  • 0 likes
  • 3 in conversation