CHAR(size)
The CHAR data type is a fixed-length
character string data type.
Syntax
CHAR[ACTER] [ (size) ]
- size defines the maximum length of the character string, in byte or char units (depending on the character length semantics)
- The maximum size of a
CHARtype is 65534. - If no size is specified, it defaults to 1.
Usage
The CHAR type is typically used to store fixed-length character
strings such as short codes (XB124), phone numbers (650-23-2345), vehicle
identification numbers.
CHAR and CHARACTER are synonyms.
The size can be expressed in bytes or characters, depending on the length semantics used in programs. For more details about character length semantics, see Length semantics settings.
When size is not specified, the default length is 1.
CHAR variables are initialized to NULL
in functions, modules and globals.
MAIN
DEFINE c CHAR(10)
LET c = "abcdef"
END MAINCHAR variables are always
blank-padded:MAIN
DEFINE c CHAR(10)
LET c = "abcdef"
DISPLAY "[", c ,"]" -- displays [abcdef ]
END MAINCHAR value are not significant in
comparisons:MAIN
DEFINE c CHAR(5)
LET c = "abc"
IF c == "abc" THEN -- evaluates to TRUE
DISPLAY "equals"
END IF
END MAINMAIN
DEFINE c CHAR(50), da DATE, dec DECIMAL(10,2)
LET da = TODAY
LET dec = 345.12
LET c = da, " : ", dec
END MAINWhen you insert character data from CHAR variables into
CHAR columns in a database table, the column-value is blank-padded
to the size of the column. Likewise, when you fetch CHAR column
values into CHAR variables, the program variable is blank-padded to
the size of the variable.
MAIN
DEFINE c CHAR(10)
DATABASE test1
CREATE TABLE table1 ( k INT, x CHAR(10) )
LET c = "abc"
INSERT INTO table1 VALUES ( 1, c )
SELECT x INTO c FROM table1 WHERE k = 1
DISPLAY "[", vc ,"]" -- displays [abc ]
END MAIN
In SQL statements, the behavior of the comparison operators when using
CHAR values may vary from one database to the other. However, most
database engines ignore trailing blanks when compating CHAR values.
For more details, see SQL portability.
Character string manipulation with CHAR,
VARCHAR and STRING types can have a cost when accessing parts of
large strings, when using UTF-8 with char length semantics. Consider using
base.StringBuffer objects when doing heavy string manipulations. For more details,
see Manipulating character strings.