In order to define a custom structure type using Oracle Database one could use statements such as these:
Such structure type can be then used to create a table that would also hold all columns defined in Person_Type:
Custom structure types support inheritance, which means that one can create another type that inherits from previous. NOT FINAL statement must be however included in a base structure type definition in order to allow for creation of any other subtypes.
Student_Type then could be used in order to create a Student_Table which will include all columns defined in Person_Type as well. Primary Key and Constraints should be defined during or after creation of table and cannot be defined inside structure type itself.
Each custom structure type can also contain other types in order to support more complex structures: