Previous Page | Next Page

The LIBNAME Statement for Relational Databases

PRESERVE_COL_NAMES= LIBNAME Option



Preserves spaces, special characters, and case sensitivity in DBMS column names when you create DBMS tables.
Alias: PRESERVE_NAMES= (see "Details")
Default value: DBMS-specific
Valid in: SAS/ACCESS LIBNAME statement (when you create DBMS tables)
DBMS support: Aster nCluster, DB2 under UNIX and PC Hosts, DB2 under z/OS, Greenplum, HP Neoview, Informix, Microsoft SQL Server, MySQL, Netezza, ODBC, OLE DB, Oracle, Sybase IQ, Teradata

Syntax
Syntax Description
Details
See Also

Syntax

PRESERVE_COL_NAMES=YES | NO

Syntax Description

NO

specifies that column names that are used to create DBMS tables are derived from SAS variable names (VALIDVARNAME= system option) by using the SAS variable name normalization rules. However, the database applies its DBMS-specific normalization rules to the SAS variable names when creating the DBMS column names.

The use of N-Literals to create column names that use database keywords or special symbols other than the underscore character might be illegal when DBMS normalization rules are applied. To include nonstandard SAS symbols or database keywords, specify PRESERVE_COL_NAMES=YES.

NO is the default for most DBMS interfaces.

YES

specifies that column names that are used in table creation are passed to the DBMS with special characters and the exact, case-sensitive spelling of the name preserved.


Details

This option applies only when you use SAS/ACCESS to create a new DBMS table. When you create a table, you assign the column names by using one of the following methods:

When you use SAS/ACCESS to read from, insert rows into, or modify data in an existing DBMS table, SAS identifies the database column names by their spelling. Therefore, when the database column exists, the case of the variable does not matter.

To save some time when coding, specify the PRESERVE_NAMES= alias if you plan to specify both the PRESERVE_COL_NAMES= and PRESERVE_TAB_NAMES= options in your LIBNAME statement.

To use column names in your SAS program that are not valid SAS names, you must use one of the following techniques:

If you are creating a table in PROC SQL, you must also include the PRESERVE_COL_NAMES=YES option in your LIBNAME statement. Here is an example:
libname mydblib oracle user=testuser password=testpass 
        preserve_col_names=yes;
   proc sql dquote=ansi;
      create table mydblib.mytable ("my$column" int);

PRESERVE_COL_NAMES= does not apply to the SQL pass-through facility.


See Also

To apply this option to an individual data set, see the naming in your DBMS interface for the PRESERVE_COL_NAMES= Data Set Option.

SAS Names and Support for DBMS Names

VALIDVARNAME= System Option

Previous Page | Next Page | Top of Page