考试网 >> IT认证 >> Oracle >> Oracle指导 >> Oracle非法数据库对象引起的错误及解决

Oracle非法数据库对象引起的错误及解决

发布时间:2006-06-28 09:36     点击:
分页:[1] 2  下一页

Oracle 数据库使用的时间越长,操作数据库的人越多,可能会遇到一些非法数据库对象引起的错误。 例如:

按用户 exp 时会报错(oracle10G)

. exporting synonyms

EXP-00008: ORACLE error 3113 encountered

ORA-03113: end-of-file on communication channel

EXP-00000: Export terminated unsuccessfully

ORACLE8i 里面的的exp错误 ORA-00980

跟踪文件里的错误:

ORA-07445: exception encountered: core dump [joe_well_known_internal()+39] [SIGSEGV]

           [Address not mapped to object] [0x1268D5C] [] []

......

SELECT SYNNAM, DBMS_JAVA.LONGNAME(SYNNAM), DBMS_JAVA.LONGNAME(SYNTAB),TABOWN,

TABNODE, PUBLIC$, SYNOWN, SYNOWNID, TABOWNID, SYNOBJNO

FROM SYS.EXU9SYNU ORDER  BY SYNTIME;          

    我的经验是这些数据库的用户下很可能有非法数据库对象。删除不合法的数据对象,就可以了。

一般情况下生成当前用户下重编译非法数据库对象的SQL语句:

set pages 500;

set lines 200;

set trims on;

set heading off;

spool /tmp/1.sql;

select 'alter '||object_type||' '||object_name||'; compile' from user_objects where status='INVALID';

spool off;

@/tmp/1.sql;

   但也有例外的情况:

   当原始的表被drop掉后,依据它创建的同义词就变得不能访问了。

   原始的表重建以后,同义词仍然不可以访问。

   

   但在user_objects里面的status状态是'VALID',却不是'INVALID'。

这需要我们把它们找出来,运行查询同义词表结构的语句:

spool /tmp/1.sql;

select 'desc '||synonym_name||';' from user_synonyms;

spool off;

@/tmp/1.sql;

出错的同义词, 一定要先彻底删除掉,再重建创建同义词。
分页:[1] 2  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有