SAS large format

Reply
Regular Contributor
Posts: 241

SAS large format

[ Edited ]

Hello All,

 

How to conver a large format into SAS dataset? the SAS memsize is not enough to do this.

May I ask is there any tricky method to split the format and convert them to SAS small SAS dataset one by one?

 

Any suggestion will be appreciated!(without change memory size)

 

 

proc format cntout=newdataset  lib=alargefmt;
run;



*******error* insufficient memory........;

Thanks!

Super User
Super User
Posts: 7,050

Re: SAS large format

Posted in reply to GeorgeSAS

GeorgeSAS wrote:

Hello All,

 

How to conver a large format into SAS dataset? the SAS memsize is not enough to do this.

May I ask is there any tricky method to split the format and convert them to SAS small SAS dataset one by one?

 

Any suggestion will be appreciated!(without change memory size)

  

proc format cntout=newdataset  lib=alargefmt;
run;

*******error* insufficient memory........;

Thanks!


Does the catalog have more than one format? Does it help to use the SELECT statement to export them one by one?

Regular Contributor
Posts: 241

Re: SAS large format

Thank you,but only one format ,that single one is too large to be operated
Super User
Super User
Posts: 7,050

Re: SAS large format

Posted in reply to GeorgeSAS
  • Try using FMTLIB option and see if you can scrape the information from the listing output. But I doubt it will help since it will still need to load the file.
  • You need to figure out how to start SAS with a larger MEMSIZE setting.
    • What version of SAS are you using? 
    • What operating system.
  • You might be able to contact SAS technical support and get help with converting the file, but I am not sure if they provide that type of service.
Super User
Super User
Posts: 7,955

Re: SAS large format

Posted in reply to GeorgeSAS

How large are we talking here?  A format is supposed to be a distinct grouping, so how has it got so big?  Maybe consider using datasets rather than formats.

Regular Contributor
Posts: 241

Re: SAS large format

Thank you,
This is on mainframe ,the format is 1 GB size.and consider using datasets rather than formats is a good option but this format is from an old file.
SAS Employee
Posts: 9

Re: SAS large format

Posted in reply to GeorgeSAS

I can't tell if that error message relates to the output data set or not, so you can limit the variables sent to cntlout to see if that helps:

 

options compress=yes;                                                                                                                   
proc format library=alargefmt                                                                                                           
  cntlout=newdataset(keep=start end label);                                                                                             
run;

 

If you don't use any ranges (i.e start and end are the same) then you could just keep start, label.

Regular Contributor
Posts: 241

Re: SAS large format

Posted in reply to DaveHorne
Thank you Dave,
that is a good idea. but it not work, because the keep statement happen only after all file already load into memory.
there would be a solution if can find how to use the 'keep' before all file load into memory.

And ballardw, thank you,but I don't have the code that created the format
Super User
Posts: 11,343

Re: SAS large format

Posted in reply to GeorgeSAS

Are you running the format code on the mainframe?

You may be running into your available space settings for users and not a SAS limit. Disc space would be a common element limited to most users and if the catalog is thal large.

 

By any chance do you have the Code that created the format? It may be that running that code with cntlout would be a better option.

Super User
Posts: 11,343

Re: SAS large format

Posted in reply to GeorgeSAS

Have you tried something like this:

 

proc format cntout=formatone  lib=alargefmt;

select formatone;
run;

 

Where formatone is the name of one of the formats in the library?

If you also have informats you would use @informatname since it is very common to have an informat and format with the same name.

Regular Contributor
Posts: 241

Re: SAS large format

I tried, but just the single format is too large to be loaded.

 

Thanks

Super User
Posts: 7,782

Re: SAS large format

Posted in reply to GeorgeSAS

Then you either need increased memory, or go back one further step and recreate the data that was originally used to create the format (nobody types a 1GB format by hand). With data like that, there MUST be documentation about its creation.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Super User
Super User
Posts: 7,050

Re: SAS large format

Posted in reply to GeorgeSAS

Get help from your local systems team. If you really are running MVS then change the memory settings in the JCL.

Are you sure the file is really a format catalog? Can you see the list of formats in it using PROC CATALOG? Or using the DICTIONARY views?

Are you sure the file is a format catalog for the version of SAS that you are running?  Format catalogs a normally not compatible across releases or operating systems.

Ask a Question
Discussion stats
  • 12 replies
  • 230 views
  • 0 likes
  • 6 in conversation