我是靠谱客的博主 稳重朋友,最近开发中收集的这篇文章主要介绍数据库Oracle开发手——报错原因及解决方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

(1)ORA-28110:策略函数或程序包 XXX 有错误。

错误原因:在执行impdp数据导入时,源数据库中的表所在的用户启用了VPD权限。使用默认expdp、impdp执行后,表的VPD权限也会导入进去。如果用户改变(表空间改变也许也会影响),导入表的VPD权限是只能让原先用户访问,当前的用户没访问权限,所以报错。

解决方法:删除VPD权限,查询当前用户的VPD权限,可以通过数据字典视图USER_POLICIES,USER_POLICY_GROUPS获得。

在test window中执行下面的内容:

declare
  -- Local variables here 
  i               integer;
  str_schema      varchar2(100) := '用户名';
  str_obj_name    varchar2(100);
  str_group_name  varchar2(100);
  str_policy_name varchar2(100);

begin
  -- Test statements here 
  for item in (select * from user_policies) loop
    str_obj_name    := item.object_name;
    str_group_name  := item.policy_group;
    str_policy_name := item.policy_name;
    dbms_rls.drop_grouped_policy(object_schema => str_schema,
                                 object_name   => str_obj_name,
                                 policy_group  => str_group_name,
                                 policy_name   => str_policy_name);
  end loop;

  for item in (select * from USER_POLICY_GROUPS) loop
    str_obj_name    := item.object_name;
    str_group_name  := item.policy_group;
    str_policy_name := str_schema;
    dbms_rls.delete_policy_group('用户名', str_obj_name, str_group_name);
  
  end loop;

end;

最后

以上就是稳重朋友为你收集整理的数据库Oracle开发手——报错原因及解决方法的全部内容,希望文章能够帮你解决数据库Oracle开发手——报错原因及解决方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部