ORA-22975: cannot create a PRIMARY KEY-based REF to this object view
Cause: The object view specified in the MAKE_REF function does not have a PRIMARY KEY-based object identifier. A PRIMARY KEY-based REF cannot be created for such a view.
Action: Specify an object view that has a PRIMARY KEY-based object identifier in the MAKE_REF function.
ORA-22975错误指的是,无法为该物理表创建一个基于主键的REF视图。
Oracle的官方解释是,当您尝试创建一个基于主键的参考对象视图时,您可能会遇到此错误。由于主键是一个唯一的索引,它不能被视图用来作为映射器(mapper),所以ORA-22975会发生。
典型的案例是,当您尝试创建一个参考对象视图,它会在定义之前使用一个主键时,这个错误会发生。另一种情况就是,当您尝试在物理表中更改引用对象视图中的主键时,这个错误也会发生。
针对这个问题,最常见的处理方法当然就是更改参考对象视图的定义,并把主键换成一个映射器(mapper)。更改方法如下:
1. 不要使用主键或唯一索引定义参考对象视图的主键;
2. 使用一组唯一的限定符定义参考对象视图的主键;
3. 确保该限定符的操作导致称Â 为一致的结果。
此外,还可以使用视图掩码,它可以为您提供更灵活的方式来定义参考对象视图。