PROC SQL tries to create a temporary index even though an ERROR is issued


PROC SQL might generate the following messages in the log if the index buffer size is too large:

ERROR: Index TEMPINDX cannot be created on file WORK.'SASTMP-000000010'n because the length of the index value (32767 bytes) is too large. The index page size (currently 32767) must be large enough to store three index values plus a small overhead structure. Reduce the length of the index value or use the IBUFSIZE= option to increase the index page size (up to a maximum of 32,767 bytes).

NOTE: Unable to create temporary index while setting up 'magic sets' key extraction in a hash join. PROC SQL will attempt to process the query without the use of a temporary index.

The ERROR message in the log should be a NOTE.

Workaround

A possible workaround is to add the following option to the PROC SQL statement:

proc sql jointech_pref = merge;