"ERROR: Teradata row not delivered (trget): No more spool space in XXXXXX"


The following error message might be issued with SAS/ACCESS Interface to
Teradata attempting to delete a table using PROC DATASETS. However,
deleting the same table using PROC SQL works without error.

ERROR: Teradata row not delivered (trget): No more spool space in U53744. 

With PROC Datasets, an additional query gets submitted to determine
which objects are tables and which are views.

For example, it would look similar to the following:

  SELECT TableName FROM DBC.TablesX
  WHERE  ((TableKind='T' OR TableKind='V') AND
  UPPER(DatabaseName)='u53744');

There must not be enough spool space in the system to satisfy this
request and that's why it fails. You can confirm this by submitting
this query on your system using BTEQ or Queryman. You could also turn
SAS tracing on, and you should be able to see the error message after
the DBC.TablesX query is submitted.

With PROC SQL, we do not execute the query mentioned above and we
directly execute the DROP TABLE which has very little spool space
requirements.

We are able to reproduce the problem by modifying the spoolspace as
follows:

  MODIFY USER mloaduser AS perm=64000000 spool=64;

The PROC DATASETS ran out of spool space and failed, while the PROC SQL DROP table worked fine.

Your DBA should be able to help with increasing spool space.

The DBC.TablesX query for PROC datasets is needed because PROC DATASETS does much more than delete, and the information returned from DBC.TablesX is needed for other purposes.