SUBSTRING function
- Last Updated: January 18, 2024
- 2 minute read
- OpenEdge
- Version 12.8
- Documentation
Extracts a portion of a character string from a field or variable.
Syntax
|
- source
-
A CHARACTER or LONGCHAR expression from which you want to extract characters or bytes.
- position
-
An integer expression that indicates the position of the first character you want to extract from source.
- length
-
An integer expression that indicates the number of characters you want to extract from source. If you do not use the length argument or specify -1 as the length,
SUBSTRINGuses the remainder of the string from the specified position.Note: If you specify 0 as the sub-string length to retrieve, the function does not throw an error and returns an empty sub-string. - type
-
A CHARACTER expression that directs ABL to interpret the specified position and length values as character units, bytes, or columns. A double-byte character registers as one character unit. By default, ABL interprets the specified position and length values as character units.
There are four valid types:
"CHARACTER","FIXED","COLUMN", and"RAW". The expression"CHARACTER"specifies character units. The expression"FIXED"specifies that position is in character units and the length is in bytes, but directsSUBSTRINGto yield only whole characters. That is, if the last byte or bytes represent part of, but not all of, a multi-byte character, these bytes are excluded. The expression"COLUMN"specifies display or print character-columns. The expression"RAW"specifies bytes. If you specify the type as a constant expression, ABL validates the type specification at compile time. If you specify the type as a non-constant expression, the AVM validates the type specification at run time for a multi-byte codepage.Note: If source is a LONGCHAR expression,"CHARACTER"is the only valid type and the default type.
Example
The r-substr.p procedure uses
the SUBSTRING function to create invoice numbers. You supply a
starting invoice number. The first SUBSTRING function produces the
first two characters of today's date; the second SUBSTRING function
produces the last two characters of today's date. The procedure concatenates these
four characters to a hyphen and the number you entered to produce an invoice
number.
r-substr.p
|