Literals

Literals serve to write values of any data type.

Table 66.1. Literals

LiteralDescriptionDeclaration syntaxExample
integerdigits representing integer number[0-9]+95623
long integer

digits representing an integer number with absolute value even greater than 231, but less than 263

[0-9]+L?257L, or 9562307813123123L
hexadecimal integerdigits and letters representing an integer number in hexadecimal form0x[0-9A-F]+0xA7B0
octal integerdigits representing an integer number in octal form0[0-7]*0644
number (double)a floating point number represented by 64bits in double precision format[0-9]+.[0-9]+456.123
decimaldigits representing a decimal number[0-9]+.[0-9]+D123.456D
double quoted string

string value/literal enclosed in double quotes; escaped characters [\n,\r,\t, \\, \", \b] get translated into corresponding control chars

"...anything except ["]...""hello\tworld\n\r"
single quoted string

string value/literal enclosed in single quotes; only one escaped character [\'] gets translated into corresponding char [']

'...anything except [']...''hello\tworld\n\r'
list of literalslist of literals where individual literals are of the same data type[ <any literal> (, <any literal>)* ][10, 17, 31] or ['hello', "world" ]
datedate valuethis mask is expected: yyyy-MM-dd2008-01-01
datetimedatetime valuethis mask is expected: yyyy-MM-dd HH:mm:ss2008-01-01 18:55:00

[Important]Important

You cannot use any literal for the byte data type. If you want to write a byte value, you must use any of the conversion functions that return byte and apply it on an argument value.

For information on these conversion functions see Conversion Functions.

[Important]Important

Remember that if you need to assign a decimal value to a decimal field, you should use decimal literal. Otherwise, such number would not be decimal, it would be a double number.

For example:

  1. Decimal value to a decimal field (correct and accurate)

    // correct - assign decimal value to decimal field

    myRecord.decimalField = 123.56d;

  2. Double value to a decimal field (possibly inaccurate)

    // possibly inaccurate - assign double value to decimal field

    myRecord.decimalField = 123.56;

The latter might produce inaccurate results.