9.2.2. ALTER TYPE Statement
ALTER TYPE type_name
( ADD ATTRIBUTE type_member
| DROP ATTRIBUTE identifier [ CASCADE | RESTRICT ]
| ADD method_specification
| DROP original_method_specification [ CASCADE | RESTRICT ]
type_name :
[ [ identifier .] [ identifier ] . ] identifier
type_member :
identifier data_type [ DEFAULT literal ] [ EXTERNAL NAME string ] [ EXTERNAL TYPE string ]
[ __SOAP_TYPE literal ] [ __SOAP_NAME literal ]
type_option : SELF AS REF | TEMPORARY | SOAP_TYPE literal
method_specification : original_method_specification | overriding_method_specification
original_method_specification :
[ STATIC | INSTANCE ] METHOD identifier ( [ decl_parameter, ... ] )
RETURNS data_type [ method_characteristics ]
|
CONSTRUCTOR METHOD identifier ( [ decl_parameter, ... ] ) [ method_characteristics ]
overriding_method_specification :
OVERRIDING [ INSTANCE ] METHOD identifier ( [ decl_parameter, ... ] )
RETURNS data_type
method_characteristics :
[ EXTERNAL TYPE literal ] [ EXTERNAL NAME string | EXTERNAL VARIABLE NAME string ]
language_name : SQL | CLR | JAVA
The ALTER TYPE statements modifies a user defined type. It can be used for adding or dropping methods and members of user defined types.
|
Note: |
|---|---|
|
The ALTER TYPE is an autocommitting statement. |
Example 9.4. Altering User Defined Types
This example uses a SQL implemented user defined type UDT_ALTER_TYPE with no supertype defined as follows:
create type UDT_ALTER_TYPE as (A integer default 1)
method m1 (I integer) returns integer;
create method M1 (in I integer) returns integer for UDT_ALTER_TYPE
{
return I;
};
Then it adds an attribute B to it :
alter type UDT_ALTER_TYPE Add attribute B integer default 2;
Then drops the original A attribute :
alter type udt_ALTER_TYPE drop attribute A;
Now let's add a new method M2 to the type :
alter type UDT_ALTER_TYPE Add method M2 (ID integer) returns integer;
create method M2 (in ID integer) returns integer for UDT_ALTER_TYPE
{
return ID + 100;
};
And drop the M1 method :
alter type UDT_ALTER_TYPE drop method M1 (ID integer) returns integer;