CREATE TYPE [ SYSUDTLIB. ] UDT_name AS data_type
[ CHARACTER SET server_character_set ]
FINAL [ method_specification ] [;]
- data_type
{ INTEGER | SMALLINT | BIGINT | BYTEINT | DATE |
{ TIME | TIMESTAMP } [( fractional_seconds_precision)] [WITH TIME ZONE] |
INTERVAL YEAR [( precision)] [TO MONTH] |
INTERVAL MONTH [( precision)] |
INTERVAL DAY [( precision)]
[TO { HOUR | MINUTE | SECOND [(fractional_seconds_precision)] } ] |
INTERVAL HOUR [(precision)]
[TO { MINUTE | SECOND [(fractional_seconds_precision)] } ] |
INTERVAL MINUTE [(precision)] [ TO SECOND [(fractional_seconds_precision)] ] |
INTERVAL SECOND [ ( precision [, fractional_seconds_precision ] ) |
REAL |
DOUBLE PRECISION |
FLOAT [(integer)] |
NUMBER [({ integer | *} [, integer ]...)] |
{ DECIMAL | NUMERIC } [(integer [, integer ]...)] |
{ CHAR | BYTE | GRAPHIC } [(integer)] |
{ VARCHAR | CHAR VARYING | VARBYTE | VARGRAPHIC } [(integer)] |
LONG VARCHAR |
LONG VARGRAPHIC |
{ BINARY LARGE OBJECT | BLOB | CHARACTER LARGE OBJECT | CLOB }
(integer [ G | K | M ])
}
- method_specification
[ INSTANCE ] METHOD [ SYSUDTLIB. ] method_name
( parameter_specification [,...] )
RETURNS returns_parameter_specification [ AS LOCATOR ]
[ CAST FROM { data_type | [ SYSUDTLIB. ] UDT_name } [ AS LOCATOR ] ]
[ SPECIFIC [ SYSUDTLIB. ] specific_method_name ]
[ SELF AS RESULT ]
language_and_access_specification
type_attribute [...]
You can specify language_and_access_specification and type_attribute in the reverse order.
- parameter_specification
[ parameter_name ] {
data_type [ CHARACTER SET server_character_set ] |
[ SYSUDTLIB. ] UDT_name
} [ AS LOCATOR ]
- returns_parameter_specification
data_type [ CHARACTER SET server_character_set ] |
[ SYSUDTLIB. ] UDT_name
} [ AS LOCATOR ]
- language_and_access_specification
language_clause SQL_data_access
If language_and_access_specification is before type_attribute, you can specify language_clause and SQL_data_access in the reverse order.
- type_attribute
{ SPECIFIC [ SYSUDTLIB. ] specific_method_name |
PARAMETER STYLE { SQL | TD_GENERAL } |
[NOT] DETERMINISTIC |
CALLED ON NULL INPUT |
RETURNS NULL ON NULL INPUT
}