4

Does anyone know what this error message means?

FATAL: Code generation error detected during MISSING smear generation.

It occurs whilst concatenating approx 40 datasets. I believe it may be due to hitting memory limits from having too many variables (circa 217), but would be good to get confirmation of this...

(log file)

301 Data &dsn.&pfix.;
302 set &setlist.;
303 if SPCODE > 50 then delete;
304 * these SPCODES are subtotals ; run;

FATAL: Code generation error detected during MISSING smear generation.

NOTE: The SAS System stopped processing this step because of errors.

WARNING: The data set WORK.XXXXXX may be incomplete. When this step was 
stopped there were 0 observations and 217 variables.

NOTE: DATA statement used (Total process time):
real time 10.58 seconds
cpu time 1.76 seconds
Mr Lister
  • 45,515
  • 15
  • 108
  • 150
Allan Bowe
  • 12,306
  • 19
  • 75
  • 124
  • 1
    As AFHood says, it's a memory issue and your best bet is to rework the problem. If you can't rework it then try starting SAS with the -memsize 0 option to allow for SAS to use more memory (if it is available) – cmjohns Jul 13 '09 at 14:14
  • 1
    Agreed - we re-ran the step using keep= on half the datasets and it worked fine. Thanks for the memsize tip.. – Allan Bowe Jul 13 '09 at 21:47
  • You could also try `(obs=10000)` as a `data-set-option` for test/development purposes. Usually easier to write than a `KEEP=` – JustinJDavies Aug 22 '14 at 07:25

1 Answers1

2

The only time I've seen this error is regarding memory limits.

The proof would be to subset the amount of datasets and try processing again. If you get success up until a specific limit, the problem would be clear.

Based on your code, you would loop through the datasets instead of processing all in a single step. This should avoid your memory problems as well.

AFHood
  • 1,020
  • 4
  • 15
  • 26