ORA-22341: cannot assign supertype instance to subtype
Cause: An attempt was made to assign or copy a supertype instance to a container (destination) that can only hold a subtype instance.
Action: Make sure the runtime type of the source of the assignment or copy is the same type as the destination or is a subtype of the destination type
ORA-22341: cannot assign supertype instance to subtype 错误消息通常发生在对象类型子程序库中,当用户尝试将超类实例赋值给派生类实例时出现错误。
ORA-22341错误消息表明无法将超类实例赋值给派生类实例。ORA-22341错误消息是Oracle中使用Oracle Object Type子程序库所见的错误消息。
案例1:在对象类型子程序库中,当尝试将超类实例赋值给派生类的实例时,可能发生此错误。例如,如果图书(supertype)与儿童图书(subtype)是不同的实体,则无法将图书实例赋值给儿童图书实例。
处理此错误的最佳方法是将子类功能添加到超类,然后使用超类对象来表示两个对象。
另外,建议在使用对象类型子程序库中使用多态和按比例缩放功能,可以有效地解决此类错误,从而更加稳定地访问和修改数据库。