返回列表 回复 发帖

编译失效的数据库对象的方法

1,  运行sql大概检查一下
    Select * From user_objects t Where t.status='INVALID'

    如果有上万个对象失效, 那估计编译不了, 没戏了, 重新做系统吧.
2, 编译,有2中办法
   a, 利用 pl/sql developer 工具编译, 如图片所示
附件: 您所在的用户组无法下载或查看附件
高义明
msn:gaoyiminggoerp@hotmail.com
Oracle EPM Planning \ HFM \ HPS
事业中,就是要发展好ERP100,更好的服务大家
------------------------------------------------------------------------------------------
我们一起共建Erp100,你肯定有信心!
b, 用oracle db 用户登陆 OS,然后运行脚本
    用sys登陆db
    sqlplus sys/*** @utlrp.sql

   utlrp.sql 在 'oradb/9.2.0/rdbms/admin' 这个目录
高义明
msn:gaoyiminggoerp@hotmail.com
Oracle EPM Planning \ HFM \ HPS
事业中,就是要发展好ERP100,更好的服务大家
------------------------------------------------------------------------------------------
我们一起共建Erp100,你肯定有信心!
麻烦,直接用ADADMIN管理工具
dba权限登陆数据库 可以使用下面语句进行对 索引和 过程 进行编译
SELECT 'ALTER '||OBJECT_TYPE||' '||T.OWNER||'.'||T.OBJECT_NAME||  CASE WHEN OBJECT_TYPE='INDEX' THEN ' REBUILD' ELSE  ' COMPILE' END ||';' FROM DBA_OBJECTS T   
WHERE T.OBJECT_TYPE IN ('INDEX','PROCDURE') AND T.STATUS='INVALID'
对于EBS系统,建议使用adadmin工具来编译非法对象!!!
我用toad编译,越编译越多失效对象,这是为什么呢?
原帖由 chen_7733 于 2008-3-7 09:11 发表
对于EBS系统,建议使用adadmin工具来编译非法对象!!!
因位各个模块之间有关联关系的,
那是你toad还没有掌握好哦,
用这个很多次了,只是比较慢而已,其他还好.
adadmin工具里面有编译,使用起来很不错的,而且是跑在后台,不耽误自己的事情
返回列表