exp报EXP-00008,ORA-00904的错误

操作系统版本:rhel 6.2 64
数据库版本:oracle 11.2.0.3.0

执行exp的时候报ora-00904错误,也没提示到底是哪个标识错误,很是莫名。

exp xxx file=/home/oracle/aaa.dmp tables=BANK_ISSUER_INFO compress=n
About to export specified tables via Conventional Path ...
. . exporting table               BANK_ISSUER_INFO
EXP-00008: ORACLE error 904 encountered
ORA-00904: : invalid identifier
Export terminated successfully with warnings.

之后网上查了一下有可能是客户端和服务器的版本差别引起的错误,但是我是直接在服务端运行的,所以不存在这个问题。

还有一种可能是数据库版本升级引起的数据字典问题,需要运行:
@?/rdbms/admin/catexp.sql;

但是我的问题依旧,任然没有解决。

最后实在想不出什么原因,决定trace个文件看看。通过运行
exec DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE('service name','exp.ext');

得到一个trace文件,并在itpub论坛上一个网友的帮助下找个一个错误:
PARSE ERROR #139846610951344:len=323 dep=0 uid=61 oct=3 lid=61 tim=1421724997747579 err=904
SELECT SYNNAM, DBMS_JAVA.LONGNAME(SYNNAM), DBMS_JAVA.LONGNAME(SYNTAB),             TABOWN, TABNODE, PUBLIC$, SYNOWN, SYNOWNID, TABOWNID, SYNOBJNO      FROM   SYS.EXU9PTS      WHERE  SYNOBJNO IN (                 SELECT SYNOBJNO                 FROM SYS.EXU9TYPTU                 WHERE TABOBJNO = :1 )      ORDER  BY SYNTIME
WAIT #139846610951344: nam='SQL*Net message to client' ela= 1 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1421724997747843
并提示没有动过dbms_java的权限。

这时猛然想到前任写过一份数据库安全加固的文档,里面的确有提到过数据库运行过:
revoke execute on dbms_java from public;

通过相应的grant操作之后一切就都正常了:
grant execute on dbms_java to xxx;

最后再次感谢Toms_zhang帮我分析了trace文件。附件就是当时的trace文件
fj.pngcpphis_ora_23733.zip

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20777547/viewspace-1408075/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/20777547/viewspace-1408075/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值