今天早上在日志中发现exp备份时出错:

. . exporting table                  BJ_AFFILIATES         37 rows exported

EXP-00008: ORACLE error 904 encountered

ORA-00904: : invalid identifier

. . exporting table                  BJ_CATEGORIES        175 rows exported

EXP-00008: ORACLE error 1003 encountered

ORA-01003: no statement parsed

. . exporting table                    BJ_LOCATION         12 rows exported

EXP-00008: ORACLE error 904 encountered

ORA-00904: : invalid identifier

. . exporting table                        BJ_TYPE         22 rows exported

EXP-00008: ORACLE error 1003 encountered

ORA-01003: no statement parsed

此错误对前台应用没有任何影响。导出的用户是系统新版本上线时创建的一个新用户,操作过程很简单,从老用户中exp数据,然后imp到新用户,导入导出过程都很正常,没有任何报错,查看错误类型含义:

[oracle@bj47 backup]$ oerr ora 904

00904, 00000, "%s: invalid identifier"

// *Cause:

// *Action:

[oracle@bj47 backup]$ oerr ora 1003

01003, 00000, "no statement parsed"

// *Cause:

// *Action:

看来无法得到原因和采取的活动。网上查询,很多解释都是不同版本的客户端和服务器之间进行exp而导致的,而我的操作是在同一台机器上,显然不是原因。从表DBA_SERVER_ERROR表中查看相应sql,发现如下sql:

SELECT

CNAME, SNAME, SSGFLAG, STSNAME, STSNO, SFILE, SBLOCK,

SDOBJID,             SCHUNKING, SVPOOL, SFLAGS, INAME, ISGFLAG,

ITSNAME, ITSNO, IFILE,             IBLOCK, IDOBJID, IINITRANS,

IMAXTRANS, SPROPERTY, COLTYPE,             COLTYPFLG, BLOCKSIZE,

INTCOLID, OPAQUETYPE      FROM   SYS.EXU9LOBU

WHERE  TOBJID = :1

用sql trace追踪也发现类似的错误,步骤如下:

1、alter system set events='904 trace name errorstack';

2、执行exp

3、在udump下的trace文件中发现:

*** SESSION ID:(44.28384) 2008-06-12 11:11:38.105

*** 2008-06-12 11:11:38.105

ksedmp: internal or fatal error

ORA-00904: : invalid identifier

Current SQL statement for this session:

SELECT

BUCKET, ENDPTHASH, ENDPTVAL,             UTL_RAW.CAST_TO_RAW(ENDPTVAL)

ENDPTVAL_RAW      FROM   SYS.EXU8HSTU      WHERE  POBJ

ID = :1 AND             INTCOL = :2      ORDER BY BUCKET

检查对象EXU8HSTU ,发现它的select权限已经赋予了public用户,也就是所有用户应该都可以访问的:

SQL> select * from dba_tab_privs where table_name='EXU8HSTU'

2  ;

GRANTEE

OWNER                          TABLE_NAME

GRANTOR                        PRIVILEGE

GRANTABLE HIERARCHY

------------------------------

------------------------------ ------------------------------

------------------------------ ----------------------------------------

--------- ---------

PUBLIC

SYS                            EXU8HSTU

SYS                            SELECT

NO        NO

那么难道是新用户对UTL_RAW包没有可执行权限?

SQL> select * from dba_tab_privs where table_name='UTL_RAW';

果然,记录为空,也就是新用户并没有包UTL_RAW的可执行权限,找到原因就好比了,给新用户赋予包UTL_RAW的可执行权限即可:

grant execute on UTL_RAW to newuser;

SQL> select * from dba_tab_privs where table_name='UTL_RAW';

GRANTEE

OWNER                          TABLE_NAME

GRANTOR                        PRIVILEGE

GRANTABLE HIERARCHY

------------------------------

------------------------------ ------------------------------

------------------------------ ----------------------------------------

--------- ---------

NEWUSER

SYS                            UTL_RAW

SYS                            EXECUTE

NO        NO

赋予成功后,exp备份也恢复正常。

仔细回想,UTL_RAW的可执行权限为何会被取消?原来是很久以

前404检查的时候要求将所有UTL开头的包的可执行权限从public用户中取消掉,那么老用户备份的时候怎么就没有报错呢?查询以前的备份日志,发现

其实也含有这样的错误,但是只是在某一个表上,因此没有引起注意:

About to export specified tables via Direct Path ...

. . exporting table                  BJ_AFFILIATES

37 rows exported

. . exporting table                  BJ_CATEGORIES

175 rows exported

. . exporting table                    BJ_LOCATION

12 rows exported

. . exporting table                        BJ_TYPE

22 rows exported

. . exporting table             NG_ADDISTRIBUTIONS

.

117949 rows exported

. . exporting table            NG_ADMANAGERDB_LOCK

1 rows exported

. . exporting table                         NG_ADS

.

118197 rows exported

. . exporting table                     NG_ADSIZES

144 rows exported

. . exporting table                   NG_ADTARGETS

1 rows exported

. . exporting table                 NG_ADVERTISERS

1775 rows exported

EXP-00008: ORACLE error 904 encountered

ORA-00904: : invalid identifier

. . exporting table             NG_ADVERTISERTYPES

。。。。。。

只有为什么老用户只有一个表报错,而新用户所有表都报错,就不得而知了。。。。。。

exp oracle 904,9i exp时出现ORA-904、ORA-1003的解决过程相关推荐

  1. V3S中换2.0寸LCD时MINIGUI无显示的问题的解决过程

    故障现象:minigui无法显示界面,消息系统正常. 排查过程: 1.修改V3S初始化代码,把代码中通过读配置文件获取的参数改成固定的320*240,这样就自动会使用320-240配套的配置文件了.发 ...

  2. 用Springer LaTeX模板时使用BibTeX遇到的问题和解决过程

    这几天想投一篇Springer出版社的EMSE,这是我第一次投这个期刊(和很多大牛比不了啊),在这里:https://www.springer.com/journal/10664/submission ...

  3. Oracle exp/imp,备份或导入时注意的事项

    Oracle exp/imp,备份或导入时注意的事项: 本篇主要讲述的是Oracle exp/imp备份导入的实际操作中需要注意的事项的介绍,凡事都不是完美的.不论哪种计算机语言,不论它的实际操作技巧 ...

  4. oracle exp导出表where,oracle EXP导出一张表时使用query参数指定where条件

    oracle exp 导出一个表的部分内容,使用query参数可加上SQL的where条件进行过滤 注意:如果需要使用到日期字符串格式等单引号,需要使用双引号将where条件括起来,而且双引号要用\做 ...

  5. oracle 9i exp 导入11g,Oracle教程:使用exp/imp 导入11g数据到9i

    --修改exu9defpswitches视图 [oracle@xifenfei ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Product ...

  6. exp导oracle数据库,使用exp/imp 在oracle数据库间导数据

    最近工作需要将oracle数据库的表数据导出到另一个oracle数据库表,找到了oracle 自带的命令行,并记录下导数据过程. 导数据过程分以下几步: 假设源数据库为A,目标数据库为B 1.在B上通 ...

  7. 使用Oracle 的 imp ,exp 命令实现数据的导入导出

    本文对Oracle数据的导入导出 imp ,exp 两个命令进行了介绍, 并对其相应的参数进行了说明,然后通过一些示例进行演练,加深理解. 文章最后对运用这两个命令可能出现的问题(如权限不够,不同or ...

  8. linux oracle 远程exp_linux单独安装oracle客户端及exp/imp工具配置

    本篇文章的操作在实际环境中进行过测试! 闲话少说,直接进入正文,下面为大家介绍在linux环境中如何单独配置oracle客户端去远程访问oracle数据库. 1.下载 Linux 下的 Oracle ...

  9. exp oracle所有数据库命令,oracle数据库exp命令

    通过exp命令对Oracle数据库进行备份操作(提供两种情况的备份:备份本地,备份远程的数据库) 通过exp命令可以对Oracle数据库进行备份操作,其命令含义是:exp 用户名/密码@数据库所在ip ...

  10. Oracle的备份——EXP

    Oracle的备份 Oracle备份 注意事项 Oracle备份命令--exp Oracle的备份脚本 注意事项 Windows Linux 定时备份 注意事项 Windows下的定时备份 Linux ...

最新文章

  1. 网友脑洞大开 用 Emoji 开发“俏皮”编程语言
  2. 有3个集合, 从其中一个集合中删除同时存在于另外两个集合的元素
  3. ApplicationListener,Game,Screen,Stage,Actor,Group
  4. cas 连接oracle,Oracle 生成系统数据导入测试系统及smarteam 连接更改
  5. navicat连接linux远程数据库,使用Navicat forMySql远程连接Linux 系统上的数据库
  6. ensp路由器无法启动_品胜云路由器Breed刷入详细教程,技巧和注意事项,功能大增...
  7. 中国电信建成全球首个覆盖最广的商用下一代物联网
  8. Update From 用法
  9. xss攻击突破转义_每个人都应该了解的7种xss漏洞
  10. es6 Promise -- 封装
  11. 直播带货还有机会吗?
  12. drbd+corosync+pacemaker实现mysql的高可用性“上”
  13. 深入理解JVM一JVM内存模型
  14. pcnn关系抽取论文阅读总结:尽量细节表现出来
  15. Photoshop CS6版本安装及破解教程
  16. 2020年如何运营抖音、快手、视频号3个短视频平台
  17. 连接主机名失败但可以连接主机ip,能用ip地址连接却无法用主机名连接,看过来一站解决
  18. 32位浮点数转十进制
  19. 大数据HBase_04_01
  20. 传奇网关-微信绑定和充值

热门文章

  1. spss入门——简单的数据预处理到时间序列分析系列(六)
  2. UBUNTU学习笔记
  3. Android 新浪微博开放平台应用 android签名怎么获得
  4. com.android.dx.cf.iface.ParseException
  5. 怎么把计算机上打印任务解除,如何终止打印机任务_如何停止打印机任务-win7之家...
  6. 分位数回归(quantile regression)简介和代码实现
  7. 关键词选择与维护教程
  8. 计算机毕设论文速成——论文思路梳理
  9. 二极管的分类、电路符号及万用表测发光二极管正负极
  10. xp系统打印机服务器报错,win10系统连接xp系统共享打印机报错0x000004的具体方法...