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 |
Table of Contents
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.
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.
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.
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;