Either a structured or distinct UDT or any valid predefined data type. You cannot specify an ARRAY or VARRAY type. For a list of data types, see Data Types Syntax.
Either source_data_type or target_data_type or both must be a UDT. This can be either a user-created UDT or an internal UDT.
If source_data_type is a predefined data type, then its cast routine must be a cast function. See specific_function.