Check perfmon to see if maybe the SQL server is just totally out of memory. There should be no logical difference between @table and #table, but the second actually creates a database object while the ...
The DICTIONARY tables component is specified in the FROM clause of a SELECT statement. DICTIONARY is a reserved libref for use only in PROC SQL. Data from DICTIONARY tables are generated at run time.