您的位置:首页 > 数据库 > Oracle

Oracle9i客户端EXP导出高版本数据库中BLOB和CLOB大字段的问题

2009-02-20 10:41 477 查看
标题:Oracle9i客户端EXP导出高版本数据库中BLOB和CLOB大字段的问题

正文:

使用Oracle9i(版本:9.2.0.1.0)的客户端exp命令导出Oracle10g的数据库,当表中有BLOB或CLOB类型的字段时,会报如下的错误:

---------

EXP-00003: 未找到段 (13,115) 的存储定义

---------

无法成功导出表。

经过查找资料和测试,发现可能是版本差异造成的一个问题。

经过如下操作可以修正该问题:

1.修改Oracle客户端的文件catexp.sql。

catexp.sql文件在Oracle客户端安装路径:../ora92/rdbms/admin/中。

在修改之前,备份catexp.sql文件。

打开catexp.sql文件,找到视图“exu9tne”。

然后把语句“UNION ALL select * from sys.exu9tneb”加入到视图exu9tne定义的最后一行。

形成如下样子:

---------

  CREATE OR REPLACE VIEW exu9tne (

  tsno, fileno, blockno, length) AS

  SELECT ts#, segfile#, segblock#, length

  FROM sys.uet$

  WHERE ext# = 1

  UNION ALL

  SELECT * from sys.exu9tneb

  /

---------

2.以sys帐号执行该脚本:



  ----------

  CREATE OR REPLACE VIEW exu9tne (

  tsno, fileno, blockno, length) AS

  SELECT ts#, segfile#, segblock#, length

  FROM sys.uet$

  WHERE ext# = 1

  UNION ALL

  SELECT * from sys.exu9tneb
  /

  GRANT SELECT ON sys.exu9tne TO PUBLIC;

  ----------



经过如上操作,即可在Oracle9i的客户端使用exp命令成功导出Oracle10g的数据库中含有BLOB或CLOB字段类型的表。



by JRQ

2009/02/20
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐