概述
(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开发手——报错原因及解决方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复