64-bit SAS –Are you being served?


Last night I had a phone conversation with a car rental customer service rep (CSR) which went somewhat like this:

Me - Hi, I’d like to rent a compact car for this Saturday in Toronto.

CSR- Your name?

Me- Do you have a car available?

CSR-I need your name first.

Me- Sure. Now can you tell me if I can get a car?

CSR- Address, street name, postal code please.

Me-Here, now can you tell me about availability?

CSR- Phone number please.

And so this went on till I was finally told that they didn’t have a car due to the busy summer season.

Me-AARGGGH (to self)!!!!

Does this resonate with you? While I do empathize with customer service reps--questioning provides customer insights to pass on special deals; like you, I also appreciate finding out first if a service is available.

So I would like to share two tips to help make that move to 64-bit SAS. For the past few weeks my colleagues and I have been busy testing data for our programming classes (SAS programming, SQL, macro language courses, etc.) using 64-bit SAS on a 64-bit windows 7 machine. Luckily, SAS complains in the log so we’d know right away whether or not the service was available.

What’s 64-bit?
32-bit and 64-bit refer to the way a computer's processor (CPU), handles information. 32-bit hardware and software limited you to 4GB of RAM. With 64-bit hardware and software, we can access memory greater than 4GB. This is good news for SAS datasets that take up huge memory.

Think of the CPU in terms of our brain –as if it can suddenly hold 20 checklists where it used to hold 10. (By the way, that’s an unfair comparison because research says the brain can hold huge capacity-think of how you can recognize people you’ve met only once or songs that you learnt in your childhood which come back later in life. They say the average brain can hold up to 100 million megabytes in memory).
Moving from 32 to 64 bit, a.k.a. Why is SAS doing this to us?
This is not a SAS choice alone-- industry is headed this way, as described in this awesome article. Any new hardware you get will probably be 64-bit. So your move to 64-bit SAS will let you use software designed for 64-bit.

What are some changes to be aware of?
1. Both the EXCEL & ACCESS engines which are 32-bit have been replaced with the PCFILES engine on 64-bit SAS. So your libname statement in a windows environment on 64-bit SAS for an Excel or Access database may need a slight change.

libname custfm pcfiles path='s:workshopcustfm.xls';
libname myfile pcfiles path=’s:workshopmyfile.mdb’;

2. Data created with 32-bit SAS is deemed foreign in 64-bit SAS. You can overcome some compatibility issues by migrating datasets. Here’s a handy PROC MIGRATE calculator.

libname data_32 'S:Workshop';
libname data_64 'S:Workshop64bit'; /*64bit folder created to save migrated data*/
      proc migrate out=data_64 in=data_32;
libname _all_ clear;
libname data_64 'S:Workshop64bit';

My apologies, I know my blog is supposed to be about SAS programming, not the technical hardware side of things. But 64-bit does impact our programming world in a few ways and I just wanted to make readers aware of trends and possibilities. Now you know that you can also try testing in your environment with confidence—knowing that SAS will tell you right away whether a service is supported or not!

Some more useful links:
How to autostart PCFILES SERVER
Migrating SAS datasets from 32 – 64 bit – Are we there yet?
Should you care about 64-bit applications?


About Author

Charu Shankar

Technical Training Specialist

Charu Shankar has been a Technical Training Specialist with SAS since 2007. She started as a programmer, and has taught computer languages, business and English Language skills. At SAS, Charu teaches the SAS language, SQL, SAS Enterprise guide and Business Intelligence. She interviews clients to recommend the right SAS training to help them meet their needs. She is helping build a center for special needs kids in this project. http://www.handicareintl.org/pankaja/pankaja.swf

Related Posts


  1. Louise Hadden on

    Hi there - I produce vast quantities of data files each month for a government client. We recently migrated to SAS 9.4, and one of the clients' users is suddenly unable to access the same data set we've been producing for 6 years. ;( Does the PROC MIGRATE work both ways? That is, can I create / migrate the data set for this user? He is using 32 bit, version 9.2 on Windows 7... We are using 64 bit, version 9.4 on the X64_ES08R2 platform. Thanks for any advice you can offer.

  2. Pingback: Next best thing since sliced bread – SAS Enterprise Guide - The SAS Training Post

  3. Charu - how do you create a SAS dataset AND format catalog using 64 bit SAS and have them still accessbile by 32 bit SAS? i.e. make the datasets and catalogs downward compatible.

    • Charu Shankar
      Charu Shankar on

      Lynn, for the 2 parts to your question
      1) Migrating datasets;
      I used PROC MIGRATE code to move over 64-bit SAS datasets to 32-bit.
      *point to the original 64 bit data in this folder;
      libname _64bit 'E:\64 bit\data';
      *create an empty folder to store migrated 32-bit datasets first & then use the libname statement below--nmake sure its empty;
      libname _32bit 'e:\64 bit\32 bit';

      /* convert 64bit datasets to 32bit datasets with the MIGRATE procedure */
      proc migrate out=_32bit in=_64bit;
      *verify by running proc contents on your data--look for these attributes in the proc contents output: Data Representation WINDOWS_32;
      proc datasets library=_32bit;
      contents data=order_fact;
      * while the attributes for 64-bit should show: Data Representation WINDOWS_64;
      proc datasets library=_64bit;
      contents data=order_fact;
      2) Migrating formats
      Formats are stored in SAS catalogs. 32bits catalogs are not compatibles with 64bit SAS. Just discard your 64bit catalog and recreate a 32bit version by re-running the same format programs in the 32bits session.
      Hope this helps, Let me know if you have any questions.

  4. Thanks Xiao, Tip #1 will work in SAS 9.2 if you have 64-bit SAS.
    To find out whether you have 32-bit or 64-bit---
    Select Start ► All Programs ► SAS ► SAS 9.2. A menu displays:
    If you see SAS 9.2 (32) (English) listed, you have SAS 9.2 for 32-bit Windows installed on your Windows x64 operating system.
    If you see SAS 9.2 (English) listed, you have SAS 9.2 for x64 Windows installed on your Windows x64 operating system.
    Or for another way, you can check the log in this handy link-
    Otherwise if you have 32-bit SAS then continue using your libname statement unchanged as before
    Libname test 'C:workshopsales.xls';

  5. Thank you very much for this blog. This is very helpful.
    May I ask a question? Does number 1 tip work in 9.2?

Leave A Reply

Back to Top