ADJUST_BYTE_SEMANTIC_COLUMN_LENGTHS= LIBNAME Statement Option

Specifies whether to adjust the lengths of CHAR or VARCHAR data type columns with byte semantic column lengths.

Valid in: SAS/ACCESS LIBNAME statement
Category: Data Set Control
Alias: EXPAND_BYTE_SEMANTIC_COLUMN_LENGTHS= [Oracle]
Default: based on the value of DBCLIENT_MAX_BYTES=
NO [Oracle. This can be changed dynamically]
Interactions: When the DBCLIENT_MAX_BYTES= value is greater than 1, ADJUST_BYTE_SEMANTIC_COLUMN_LENGTHS=YES. When DBCLIENT_MAX_BYTES=1, ADJUST_BYTE_SEMANTIC_COLUMN_LENGTHS=NO.
When ADJUST_BYTE_SEMANTIC_COLUMN_LENGTHS=YES and DBSERVER_ENCODING_FIXED=YES, this changes the character length calculation. (See “Details”.)
Supports: NLS
Data source: Oracle
See: SAS/ACCESS LIBNAME options for NLS

Syntax

ADJUST_BYTE_SEMANTIC_COLUMN_LENGTHS=YES | NO

Syntax Description

YES

indicates that column lengths are based on the number of characters multiplied by the DBCLIENT_MAX_BYTES= value. When the DBCLIENT_MAX_BYTES= value is greater than 1, ADJUST_BYTE_SEMANTIC_COLUMN_LENGTHS=YES.

NO

indicates that any column lengths that byte semantics specify on the server are used “as is” on the client. If DBCLIENT_MAX_BYTES=1, ADJUST_BYTE_SEMANTIC_COLUMN_LENGTHS=NO.

Details

When ADJUST_BYTE_SEMANTIC_COLUMN_LENGTHS=YES and DBSERVER_ENCODING_FIXED=YES, character length is calculated as byte length divided by the DBSERVER_MAX_BYTES= value. When ADJUST_BYTE_SEMANTIC_COLUMN_LENGTHS=YES and DBSERVER_ENCODING_FIXED=NO, character lengths are not adjusted.

Example: Adjust Client-Encoded Column Lengths

When ADJUST_BYTE_SEMANTIC_COLUMN_LENGTHS=YES, column lengths that byte semantics creates are adjusted with client encoding, as shown in this example.

libname x3 &engine &connopt ADJUST_BYTE_SEMANTIC_COLUMN_LENGTHS=YES;
proc contents data=x3.char_sem; run;
proc contents data=x3.nchar_sem; run;
proc contents data=x3.byte_sem; run;
proc contents data=x3.mixed_sem; run;

In this example, various options have different values.

libname x5 &engine &connopt ADJUST_NCHAR_COLUMN_LENGTHS=NO
ADJUST_BYTE_SEMANTIC_COLUMN_LENGTHS=NO DBCLIENT_MAX_BYTES=3;
proc contents data=x5.char_sem; run;
proc contents data=x5.nchar_sem; run;
proc contents data=x5.byte_sem; run;
proc contents data=x5.mixed_sem; run;

This example also uses different values for the various options.

libname x6 &engine &connopt ADJUST_BYTE_SEMANTIC_COLUMN_LENGTHS=YES
ADJUST_NCHAR_COLUMN_LENGTHS=YES DBCLIENT_MAX_BYTES=3;
proc contents data=x6.char_sem; run;
proc contents data=x6.nchar_sem; run;
proc contents data=x6.byte_sem; run;
proc contents data=x6.mixed_sem; run;
Last updated: February 3, 2026