When you try to read the output table that is created from the scoring of a Teradata table, an error that specifies that a column does not exist might occur when the following is true:
- The scoring of the Teradata table is done in Teradata.
- The scoring is done using the SAS® Embedded Process (EP) and the stored procedure SAS_SYSFNLIB.SAS_SCORE_EP.
- You run SAS® 9.4M2 (TS1M2) or earlier.
- You have deployed a version of the SAS Embedded Process that shipped with a release of SAS later than SAS 9.4M2. These releases include sepcoretera-9.43000-1 or later.
- The table being scored contains columns with names longer than 30 characters in length and those variables are being selected as part of the inquiry during the scoring call.
This issue occurs because, prior to SAS® 9.4M3 (TS1M3), the limit for Teradata column names was 30 characters. In SAS 9.4M3, both the SAS/ACCESS® Interface to Teradata product and the EP that shipped with that release now support names that are longer than 30 characters. As a result, scoring done with the later EP release might result in a table in which the column names are longer than 30 characters in length. When you try to read the table with a release of SAS that supported only 30 characters, it looks for the name with 30 characters instead of the longer name.
Use one of the following workarounds for this issue:
- Rename the variables in the input table to 30 characters.
- Rename the variables in the output table to match what the names were previously.
- Create a view that renames the columns to 30-character names to match what the names were previously and query the view rather than the table.
- Upgrade to SAS 9.4M3 or later.
- Use explicit pass-through in which the columns are renamed to their previous names.