Support for Column Names with Special Characters

When the LIBNAME engine reads a column name that contains characters that are not allowed in standard SAS names, the default behavior is to replace an unsupported character with an underscore (_). For example, the database column name Amount Budgeted$ becomes the SAS name Amount_Budgeted_.
Note: Nonstandard names include those with blank spaces or special characters (such as @, #, %) that are not allowed in SAS names unless the VALIDVARNAME=ANY option is set. When a SAS data set contains special characters in column names and the data set is accessed with VALIDVARNAME=ANY not set, the LIBNAME engine replaces the special characters with underscores, but no message is issued.
When SAS encounters a DBMS name that exceeds 32 characters, SAS truncates the name. After it has modified or truncated a DBMS column name, SAS appends a number to the name, if necessary, to preserve uniqueness. For example, DBMS column names MY$DEPT, My$Dept, and my$dept become SAS names MY_DEPT, MY_Dept0, and my_dept1.
To change how SAS handles case-sensitive or nonstandard table and column names, specify one or more of the following options:
PRESERVE_COL_NAMES=YES
is a LIBNAME statement and data set option. When set to YES, this option preserves blank spaces, special characters, and mixed case in column names. See PRESERVE_COL_NAMES= LIBNAME Statement Option for more information about this option.
PRESERVE_TAB_NAMES=YES
is a LIBNAME statement option. When set to YES, this option preserves blank spaces, special characters, and mixed case in table names. See PRESERVE_TAB_NAMES= LIBNAME Statement Option for more information about this option.
VALIDVARNAME=ANY
is a SAS global system option that can override the SAS naming conventions. See VALIDVARNAME= System Option.
The availability of these options and their default settings are data source specific. See the naming conventions documentation for each data source reference in the DataFlux Federation Server Administrator’s Guide.