项目中开发使用了VPD,数据库用户B的对象的创建依赖于数据用户A,由于用户A的对象进行DDL、迁移或dump等操作,造成了用户B的对象INVALID.应用系统的数据源使用了用户B,因此造成应用系统出错。

此时可进行如下处理:

1,找到失效的对象

[sql]

select object_type,object_id,object_name

from user_objects

where status=’INVALID’ order by object_type

2,进行判断后,可以重新编译这些对象。

编译的方法有多种:

1) DBMS_DDL

2.)DBMS_UTILITY

3.)UTL_RECOMP

4)UTLRP.SQL

5)Manually Recompile

最佳方案是手动编译这些对象,可以参考下面的SQL脚本:

[sql]

Spool recompile.sql

Select ‘alter ‘object_type’ ‘object_name’ compile;’

From user_objects

Where status <> ‘VALID’

And object_type IN (‘VIEW’,’SYNONYM’,

’PROCEDURE’,’FUNCTION’,

’PACKAGE’,’TRIGGER’);

Spool off

@recompile.sql

Note: VIEW,SYNONYM,PROCEDURE,PACKAGE,FUNCTION,TRIGGER

Spool pkg_body.sql

Select ‘alter package ‘object_name’ compile body;’

From user_objects

where status <> ‘VALID’

And object_type = ‘PACKAGE BODY’;

Spool off

@pkg_body.sql

Spool undefined.sql

select ‘alter materizlized view ‘object_name’ compile;’

From user_objects

where status <> ‘VALID’

And object_type =’UNDEFINED’;

Spool off

@undefined.sql

Spool javaclass.sql

Select ‘alter java class ‘object_name’ resolve;’

from user_objects

where status <> ‘VALID’

And object_type =’JAVA CLASS’;

Spool off

@javaclass.sql

Spool typebody.sql

Select ‘alter type ‘object_name’ compile body;’

From user_objects

where status <> ‘VALID’

And object_type =’TYPE BODY’;

Spool off

@typebody.sql

Spool public_synonym.sql

Select ‘alter public synonym ‘object_name’ compile;’

From user_objects

Where status <> ‘VALID’

And owner = ‘PUBLIC’

And object_type = ‘SYNONYM’;

Spool off

@public_synonym.sql

Oracle数据库用户失效对象,Oracle数据库对象失效解决相关推荐

  1. oracle创建用户并授权select,oracle创建用户并授权,oracle创建用户并授权select

    oracle创建用户并授权,oracle创建用户并授权select,[转载]Oracle创建表空间.创建用户以及授权 Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的数据库外,我们还可以创 ...

  2. oracle 审计用户登录信息,Oracle预警用户登录锁定、过期及其审计信息

    文章版权所有 Jusin Hao(luckyfriends) ,支持原创,转载请注明 ----创建存储过程(预警用户登录锁定.过期及其审计信息) CREATE OR REPLACE PROCEDURE ...

  3. oracle 恢复用户表空间,Oracle以TSPITR方式恢复表空间数据一例

    SQL> show user USER is "" SQL> conn zlm/zlm@ora10g213 Connected. SQL> ! --创建一个RMA ...

  4. oracle同一个用户数据隔离,ORACLE一个实例多个用户实现数据隔离

    在数据库只有一个实例的情况下,如果要实现数据的隔离,最简单的方法就是创建多个表空间,添加多个用户,一个用户对应一个表空间,这样就实现了数据的隔离(多个开发团队共用一个oracle实例). 1.ssh ...

  5. oracle常用用户有哪几个,oracle解锁用户的命令有哪些

    oracle解锁用户的命令有:1.使用plsql工具sys用户登录,代码为[ALTER USER 用户名 ACCOUNT UNLOCK]:2.设置用户密码无限次尝试登录:3.设置用户密码不过期. or ...

  6. 查询oracle中用户的角色,oracle中用户角色的查询和授权

    用户拥有的系统权限 select  privilege  from dba_sys_privs  where grantee='&USERNAME' union select  privile ...

  7. oracle默认用户的密码,Oracle的默认用户密码

    1.安装时选择的自动安装,忘了用户名和密码导致现在试了几个Oracle默认用户名密码後(表格中附带默认用户名及密码),都提示无效的用户名.密码, Username Password Descripti ...

  8. Oracle回应用户锁定,自治数据库是更好选择

    自治数据库是近年来Oracle比较大的创新,根据Oracle自己的描述:自治式数据库云采用了机器学习技术实现了自动化,因而不再需要人力的介入,从根本上消除了人为差错,也不再需要手工进行微调.修补.更新 ...

  9. oracle创建数据库用户并授权,oracle创建数据库、表空间、用户并授权

    1.创建数据库 简单的方式是使用'Database Configuration Assistant'数据库配置工具根据向导创建 2.创建表空间 在实际使用中需要创建自定义的表空间和临时表空间 2.1. ...

  10. oracle查询用户密码命令,Oracle数据库用户密码问题

    场景一: 在重置一些系统sys和system用户密码(已过期)时(还是使用原密码,根据user$中的password修改重置),在user$查看sys和system用户信息时发现这两个用户的PASSW ...

最新文章

  1. 千万别在UI线程上调用Control.Invoke和Control.BeginInvoke,因为这些是依然阻塞UI线程的,造成界面的假死...
  2. 基于openstack的私有云构建_阿里云杨敬宇:四层技术构建基于城市场景的边缘计算...
  3. .NET轻量级ORM框架Dapper入门精通
  4. Spring配置与第一Spring HelloWorld
  5. 常用MYSQL日期查询
  6. 【BZOJ2768】冠军调查,网络流之最小割
  7. 蚂蚁集团暂缓两地上市,重新上市或推迟半年,阿里股价相继大跌...
  8. 程序员面试金典——3.3集合栈
  9. matlab偏微分方程工具箱求解
  10. 单链表插入、删除操作单步解析(十三)
  11. SiamFC论文解读及代码实现
  12. PHP快速链接,PHP快速检测死链接
  13. 怎么用计算机看亲戚关系,小米亲戚计算器怎么用?如何利用小米计算器查询亲戚关系...
  14. 《机器学习实战》笔记——第四章:基于概率论的分类方法:朴素贝叶斯
  15. CoreAudioApi-音频端点设备-检测耳机插拔
  16. C/C++_atoi,itoa功能及其实现原理
  17. Java小白入门200例79之Java类的封装
  18. snail mock_HTML5 2D游戏开发,Snail Bait简介
  19. Zoom(多人手机云视频会议软件)
  20. 通过ganache与以太坊Dapp实现交互 —— 简单的例子

热门文章

  1. linear-gradient与radial-gradient
  2. 链家java_链家2018春招Java工程师编程题题解
  3. MFC为什么要保留原来的CPen, 然后SelectObject
  4. argparse.ArgumentParser()的用法
  5. 开发函数计算的正确姿势 —— 移植 next.js 服务端渲染框架
  6. SpringCloud实战4-Hystrix线程隔离请求缓存请求合并
  7. vue Cli 脚手架的搭建
  8. ant+jmeter中build.xml配置详解
  9. Effective C++ 条款47
  10. Netgear wndr3700v2 路由器刷OpenWrt打造全能服务器(五)SVN服务