SQL$HELP72.HLB  —  SET_CHARACTER_LENGTH
    Specifies whether the length of character string parameters,
    columns, domains, and offsets are interpreted as characters or
    octets. (An octet is a group of 8 bits.)

1  –  Environment

    You can use the SET CHARACTER LENGTH statement:

    o  In interactive SQL

    o  Embedded in host language programs to be precompiled

    o  As part of a procedure in an SQL module

    o  In dynamic SQL as a statement to be dynamically executed

2  –  Format

  (B)0SET CHARACTER LENGTH qqqqq> runtime-options qqqqqq>   
                                                        

  (B)0runtime-options                        
                                         
  qqwqqq> 'string-literal' qqqqqqwqqqqq> 
    tqqq> parameter qqqqqqqqqqqqqu       
    mqqq> parameter-marker qqqqqqj       

3  –  Arguments

3.1  –  parameter

    Specifies the value of runtime-options, which must be one of the
    following:

    o  OCTETS

    o  CHARACTERS

    CHARACTERS specifies the length of character string parameters,
    columns, domains, and offsets, which are interpreted as
    characters.

    OCTETS specifies the length of character string parameters,
    columns, domains, and offsets, which are interpreted as octets.

    The default is octets.

3.2  –  parameter-marker

    Specifies the value of runtime-options, which must be one of the
    following:

    o  OCTETS

    o  CHARACTERS

    CHARACTERS specifies the length of character string parameters,
    columns, domains, and offsets, which are interpreted as
    characters.

    OCTETS specifies the length of character string parameters,
    columns, domains, and offsets, which are interpreted as octets.

    The default is octets.

3.3  –  'string-literal'

    Specifies the value of runtime-options, which must be one of the
    following:

    o  OCTETS

    o  CHARACTERS

    CHARACTERS specifies the length of character string parameters,
    columns, domains, and offsets, which are interpreted as
    characters.

    OCTETS specifies the length of character string parameters,
    columns, domains, and offsets, which are interpreted as octets.

    The default is octets.

4  –  Examples

    Example 1: Setting the character length to octets

    SQL> set character length 'octets';
    SQL> show connection current;
    Connection: RDB$DEFAULT_CONNECTION
    Default alias is RDB$DBHANDLE
    Default catalog name is RDB$CATALOG
    Default schema name is SMITH
    Dialect: SQLV40
    Default character unit: OCTETS
    Keyword Rules: SQLV40
    View Rules: SQLV40
    Default DATE type: DATE VMS
    Quoting Rules: SQLV40
    Optimization Level: DEFAULT
    Hold Cursors default: WITH HOLD PRESERVE NONE
    Quiet commit mode: OFF
    Compound transactions mode: EXTERNAL
    Default character set is DEC_MCS
    National character set is DEC_MCS
    Identifier character set is DEC_MCS
    Literal character set is DEC_MCS
    Display character set is UNSPECIFIED

    Alias RDB$DBHANDLE:
            Identifier character set is DEC_MCS
            Default character set is DEC_MCS
            National character set is DEC_MCS
    SQL> /*
    ***> Create two domains: one uses LATIN9, a single-octet character
    ***> set, and one uses KANJI a fixed multi-octet character set.
    ***> */
    SQL> create domain LATIN9_DOM char(8) character set ISOLATIN9;
    SQL> create domain KANJI_DOM char(5) character set KANJI;
    %SQL-F-CHRUNIBAD, Number of octets is not an integral number of characters
    SQL> /*
    ***> Because KANJI is a fixed multi-octet character set, using two
    ***> octets for each character, you must specify the size as a
    ***> multiple of two.
    ***> */
    SQL> create domain KANJI_DOM char(8) character set KANJI;
    SQL> show domains;
    User domains in database with filename MIA_CHAR_SET
    KANJI_DOM                       CHAR(8)
             KANJI 4 Characters,  8 Octets
    LATIN9_DOM                      CHAR(8)
             ISOLATIN9 8 Characters,  8 Octets
    SQL>

    Example 2: Setting the character length to characters

    SQL> set character length 'characters';
    SQL> show connection current;
    Connection: RDB$DEFAULT_CONNECTION
    Default alias is RDB$DBHANDLE
    Default catalog name is RDB$CATALOG
    Default schema name is SMITH
    Dialect: SQLV40
    Default character unit: CHARACTERS
    Keyword Rules: SQLV40
    View Rules: SQLV40
    Default DATE type: DATE VMS
    Quoting Rules: SQLV40
    Optimization Level: DEFAULT
    Hold Cursors default: WITH HOLD PRESERVE NONE
    Quiet commit mode: OFF
    Compound transactions mode: EXTERNAL
    Default character set is DEC_MCS
    National character set is DEC_MCS
    Identifier character set is DEC_MCS
    Literal character set is DEC_MCS
    Display character set is UNSPECIFIED

    Alias RDB$DBHANDLE:
            Identifier character set is DEC_MCS
            Default character set is DEC_MCS
            National character set is DEC_MCS
    SQL> /*
    ***> Create two domains: one uses LATIN9, a single-octet character
    ***> set, and one uses KANJI a fixed multi-octet character set.
    ***> */
    SQL> create domain LATIN9_DOM char(8) character set ISOLATIN9;
    SQL> create domain KANJI_DOM char(5) character set KANJI;
    SQL> show domains;
    User domains in database with filename MIA_CHAR_SET
    KANJI_DOM                       CHAR(5)
             KANJI 5 Characters,  10 Octets
    LATIN9_DOM                      CHAR(8)
             ISOLATIN9 8 Characters,  8 Octets
    SQL>
Close Help