Built-in Types
The following built-in types are provided:
| CDS Type | Arguments / Remarks | Example Value | SQL (6) |
|---|---|---|---|
UUID | an opaque string (1) | 'be071623-8699-4106-...' | NVARCHAR(36) |
Boolean | true | BOOLEAN | |
UInt8 | (2) | 133 | TINYINT |
Int16 | 1337 | SMALLINT | |
Int32 | 1337 | INTEGER | |
Integer | 1337 | INTEGER | |
Int64 | 1337 | BIGINT | |
Integer64 | 1337 | BIGINT | |
Decimal | (precision, scale) (3) | 15.2 | DECIMAL |
Double | 15.2 | DOUBLE | |
Date | '2021-06-27' | DATE | |
Time | '07:59:59' | TIME | |
DateTime | sec precision | '2021-06-27T14:52:23Z' | TIMESTAMP |
Timestamp | µs precision (4) | '2021-06-27T14:52:23.123Z' | TIMESTAMP |
String | (length ) (5) | 'hello world' | NVARCHAR |
Binary | (length) (5) | VARBINARY | |
LargeBinary | BLOB | ||
LargeString | 'hello world' | NCLOB |
Remarks
(1) At runtime, UUIDs are treated as opaque values and are, for example, not converted to lower case on input. UUIDs generated in the application are RFC 4122-compliant. See Don't Interpret UUIDs! for details.
(2) Not supported on PostgreSQL, as there is no
TINYINT. Not supported on H2, asTINYINTis signed on H2. UseInt16instead.
(3) Arguments
precisionandscaleare optional → if omitted a decfloat type is used
(4) Up to 7 digits of fractional seconds; if a data is given with higher precision truncation may occur
(5) Argument
lengthis optional → use optionscds.cdsc.defaultStringLengthandcds.cdsc.defaultBinaryLengthto control the project-specific default length used for OData and SQL backends. If not set, default length 5000 is used for SAP HANA and default length 255 is used for all other SQL backends.
(6) Mapping to ANSI SQL types are given for comparison. Note though, that you need to have the specification of your target database in mind when considering, for example, length restrictions.