exp oracle 904,9i exp时出现ORA-904、ORA-1003的解决过程
今天早上在日志中发现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的解决过程相关推荐
- V3S中换2.0寸LCD时MINIGUI无显示的问题的解决过程
故障现象:minigui无法显示界面,消息系统正常. 排查过程: 1.修改V3S初始化代码,把代码中通过读配置文件获取的参数改成固定的320*240,这样就自动会使用320-240配套的配置文件了.发 ...
- 用Springer LaTeX模板时使用BibTeX遇到的问题和解决过程
这几天想投一篇Springer出版社的EMSE,这是我第一次投这个期刊(和很多大牛比不了啊),在这里:https://www.springer.com/journal/10664/submission ...
- Oracle exp/imp,备份或导入时注意的事项
Oracle exp/imp,备份或导入时注意的事项: 本篇主要讲述的是Oracle exp/imp备份导入的实际操作中需要注意的事项的介绍,凡事都不是完美的.不论哪种计算机语言,不论它的实际操作技巧 ...
- oracle exp导出表where,oracle EXP导出一张表时使用query参数指定where条件
oracle exp 导出一个表的部分内容,使用query参数可加上SQL的where条件进行过滤 注意:如果需要使用到日期字符串格式等单引号,需要使用双引号将where条件括起来,而且双引号要用\做 ...
- oracle 9i exp 导入11g,Oracle教程:使用exp/imp 导入11g数据到9i
--修改exu9defpswitches视图 [oracle@xifenfei ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Product ...
- exp导oracle数据库,使用exp/imp 在oracle数据库间导数据
最近工作需要将oracle数据库的表数据导出到另一个oracle数据库表,找到了oracle 自带的命令行,并记录下导数据过程. 导数据过程分以下几步: 假设源数据库为A,目标数据库为B 1.在B上通 ...
- 使用Oracle 的 imp ,exp 命令实现数据的导入导出
本文对Oracle数据的导入导出 imp ,exp 两个命令进行了介绍, 并对其相应的参数进行了说明,然后通过一些示例进行演练,加深理解. 文章最后对运用这两个命令可能出现的问题(如权限不够,不同or ...
- linux oracle 远程exp_linux单独安装oracle客户端及exp/imp工具配置
本篇文章的操作在实际环境中进行过测试! 闲话少说,直接进入正文,下面为大家介绍在linux环境中如何单独配置oracle客户端去远程访问oracle数据库. 1.下载 Linux 下的 Oracle ...
- exp oracle所有数据库命令,oracle数据库exp命令
通过exp命令对Oracle数据库进行备份操作(提供两种情况的备份:备份本地,备份远程的数据库) 通过exp命令可以对Oracle数据库进行备份操作,其命令含义是:exp 用户名/密码@数据库所在ip ...
- Oracle的备份——EXP
Oracle的备份 Oracle备份 注意事项 Oracle备份命令--exp Oracle的备份脚本 注意事项 Windows Linux 定时备份 注意事项 Windows下的定时备份 Linux ...
最新文章
- 网友脑洞大开 用 Emoji 开发“俏皮”编程语言
- 有3个集合, 从其中一个集合中删除同时存在于另外两个集合的元素
- ApplicationListener,Game,Screen,Stage,Actor,Group
- cas 连接oracle,Oracle 生成系统数据导入测试系统及smarteam 连接更改
- navicat连接linux远程数据库,使用Navicat forMySql远程连接Linux 系统上的数据库
- ensp路由器无法启动_品胜云路由器Breed刷入详细教程,技巧和注意事项,功能大增...
- 中国电信建成全球首个覆盖最广的商用下一代物联网
- Update From 用法
- xss攻击突破转义_每个人都应该了解的7种xss漏洞
- es6 Promise -- 封装
- 直播带货还有机会吗?
- drbd+corosync+pacemaker实现mysql的高可用性“上”
- 深入理解JVM一JVM内存模型
- pcnn关系抽取论文阅读总结:尽量细节表现出来
- Photoshop CS6版本安装及破解教程
- 2020年如何运营抖音、快手、视频号3个短视频平台
- 连接主机名失败但可以连接主机ip,能用ip地址连接却无法用主机名连接,看过来一站解决
- 32位浮点数转十进制
- 大数据HBase_04_01
- 传奇网关-微信绑定和充值
热门文章
- spss入门——简单的数据预处理到时间序列分析系列(六)
- UBUNTU学习笔记
- Android 新浪微博开放平台应用 android签名怎么获得
- com.android.dx.cf.iface.ParseException
- 怎么把计算机上打印任务解除,如何终止打印机任务_如何停止打印机任务-win7之家...
- 分位数回归(quantile regression)简介和代码实现
- 关键词选择与维护教程
- 计算机毕设论文速成——论文思路梳理
- 二极管的分类、电路符号及万用表测发光二极管正负极
- xp系统打印机服务器报错,win10系统连接xp系统共享打印机报错0x000004的具体方法...