19.5 SQL-99 Data Types
The data types defined by the SQL-99 specification are created within CWM as instances of the Relational package’s SQLSimpleType
metaclass. These data type instances are a superset of those defined by the SQL-92 specification and follow the SQL-99 specification’s
Data_Type_Descriptor information. Practical implementations of SQL-based systems will have variations on the types presented
here; consult relevant product information for details.
The SQL-99 data type instances provide a number of examples of the use of “parameterized? types. Because the CWM Relational
package separates the notions of data type and column, the data type instances do not contain all seemingly relevant data
type parameters. Rather, the Column instances associated with a particular Table instance contain the values of some parameters.
For example, for a Column instance of declared data type DECIMAL(5, 2), the precision (“5?) and scale (“2?) would be recorded
in the attributes Column::precision and Column::scale, respectively, whereas the DECIMAL data type instance would have its
SQLSimpleType::precisionRadix attribute set to the value 10, meaning that the precision and scale values are stored as base-10
numeric values. Similarly, a Column instance declared as CHARACTER(80) would have the Column::length attribute set to 80 while
the CHARACTER data type’s SQLSimpleType::characterOctetLength attribute would be set to value 8 indicating that the data type
contains 8-bit character codes.
SQL-99 Data Type |
Instance of |
Attributes |
|
|
|
|
|
|
|
|
|
BIT |
SQLSimpleType |
characterMaximumLength = IDV characterOctetLength = null (defined in Column) numericPrecision = null numericPrecisionRadix
= null numericScale = null dateTimePrecision = null |
|
|
|
BIT VARYING |
SQLSimpleType |
characterMaximumLength = IDV characterOctetLength = null (defined in Column) numericPrecision = null numericPrecisionRadix
= null numericScale = null dateTimePrecision = null |
|
|
|
BINARY LARGE OBJECT* |
SQLSimpleType |
characterMaximumLength = IDV characterOctetLength = null (defined in Column) numericPrecision = null numericPrecisionRadix
= null numericScale = null dateTimePrecision = null |
|
|
|
CHARACTER |
SQLSimpleType |
characterMaximumLength = IDV characterOctetLength = null (defined in Column) numericPrecision = null numericPrecisionRadix
= null numericScale = null dateTimePrecision = null |
|
|
|
SQL-99 Data Type |
Instance of |
Attributes |
|
|
|
|
|
|
|
|
|
CHARACTER VARYING |
SQLSimpleType |
characterMaximumLength = IDV characterOctetLength = null (defined in Column) numericPrecision = null numericPrecisionRadix
= null numericScale = null dateTimePrecision = null |
|
|
|
CHARACTER LARGE OBJECT* |
SQLSimpleType |
characterMaximumLength = IDV characterOctetLength = null (defined in Column) numericPrecision = null numericPrecisionRadix
= null numericScale = null dateTimePrecision = null |
|
|
|
NATIONAL CHARACTER |
SQLSimpleType |
characterMaximumLength = IDV characterOctetLength = null (defined in Column) numericPrecision = null numericPrecisionRadix
= null numericScale = null dateTimePrecision = null |
|
|
|
NATIONAL CHARACTER VARYING |
SQLSimpleType |
characterMaximumLength = IDV characterOctetLength = null (defined in Column) numericPrecision = null numericPrecisionRadix
= null numericScale = null dateTimePrecision = null |
|
|
|
NATIONAL CHARACTER LARGE OBJECT* |
SQLSimpleType |
characterMaximumLength = IDV characterOctetLength = null (defined in Column) numericPrecision = null numericPrecisionRadix
= null numericScale = null dateTimePrecision = null |
|
|
|
NUMERIC |
SQLSimpleType |
characterMaximumLength = null characterOctetLength = null numericPrecision = null (defined in Column) numericPrecisionRadix
= 10 numericScale = null (defined in Column) dateTimePrecision = null |
|
|
|
DECIMAL |
SQLSimpleType |
characterMaximumLength = null characterOctetLength = null numericPrecision = null (defined in Column) numericPrecisionRadix
= 10 numericScale = null (defined in Column) dateTimePrecision = null |
|
|
|
INTEGER |
SQLSimpleType |
characterMaximumLength = null characterOctetLength = null numericPrecision = IDV numericPrecisionRadix = 2 or 10 (IDV) numericScale
= 0 dateTimePrecision = null |
|
|
|
SQL-99 Data Type |
Instance of |
Attributes |
|
|
|
|
|
|
|
|
|
SMALLINT |
SQLSimpleType |
characterMaximumLength = null characterOctetLength = null numericPrecision = IDV numericPrecisionRadix = 2 or 10 (IDV) numericScale
= 0 dateTimePrecision = null |
|
|
|
FLOAT |
SQLSimpleType |
characterMaximumLength = null characterOctetLength = null numericPrecision = IDV numericPrecisionRadix = 2 numericScale =
null dateTimePrecision = null |
|
|
|
REAL |
SQLSimpleType |
characterMaximumLength = null characterOctetLength = null numericPrecision = IDV numericPrecisionRadix = 2 numericScale =
null dateTimePrecision = null |
|
|
|
DOUBLE PRECISION |
SQLSimpleType |
characterMaximumLength = null characterOctetLength = null numericPrecision = IDV numericPrecisionRadix = 2 numericScale =
null dateTimePrecision = null |
|
|
|
BOOLEAN* |
SQLSimpleType |
characterMaximumLength = null characterOctetLength = null numericPrecision = null numericPrecisionRadix = null numericScale
= null dateTimePrecision = null |
|
|
|
DATE |
SQLSimpleType |
characterMaximumLength = null characterOctetLength = null numericPrecision = IDV numericPrecisionRadix = IDV numericScale
= null dateTimePrecision = IDV |
|
|
|
TIME |
SQLSimpleType |
characterMaximumLength = null characterOctetLength = null numericPrecision = IDV numericPrecisionRadix = IDV numericScale
= null dateTimePrecision = IDV |
|
|
|
TIME WITH TIMEZONE |
SQLSimpleType |
characterMaximumLength = null characterOctetLength = null numericPrecision = IDV numericPrecisionRadix = IDV numericScale
= null dateTimePrecision = IDV |
|
|
|
SQL-99 Data Type |
Instance of |
Attributes |
|
|
|
|
|
|
|
|
|
TIMESTAMP |
SQLSimpleType |
characterMaximumLength = null characterOctetLength = null numericPrecision = IDV numericPrecisionRadix = IDV numericScale
= null dateTimePrecision = IDV |
|
|
|
TIMESTAMP WITH TIMEZONE |
SQLSimpleType |
characterMaximumLength = null characterOctetLength = null numericPrecision = IDV numericPrecisionRadix = IDV numericScale
= null dateTimePrecision = IDV |
|
|
|
INTERVAL |
SQLSimpleType |
characterMaximumLength = null characterOctetLength = null numericPrecision = IDV numericPrecisionRadix = IDV numericScale
= null dateTimePrecision = IDV |
|
|
|