在类型层次结构中,子类型自动继承对其超类型定义的所有例程。因此,如果调用带有子类型的自变量的例程,并且没有对该子类型定义例程,那么数据库服务器可调用对超类型定义的例程。 类型可替代性指的是这样的能力:在预期为超类型的实例时使用子类型的实例。例如:假定创建例程 p_info(),它接受类型为 person_t 的参数并返回类型为 person_t 的实例的姓氏和生日。如果没有注册其他 p_info() 例程,并且使用类型为 employee_t 的参数来调用 p_info(),那么该例程将返回类型为 employee_t 的实例的姓名和生日字段(从 person_t 继承而来)。由于 employee_t 会继承其超类型 person_t 的函数,所以这是可能发生的。
图: 数据库服务器如何在类型层次结构中搜索例程的示例
数据库服务器搜索它可以使用的例程的过程称为例程解析。有关例程解析的更多信息,请参阅 GBase 8s 用户定义的例程与数据类型开发者指南。