oracle10g账号Oracle存在LOB类型时提示表空间不存在的解决方案

问题:
迁移数据库时,如果表中存在LOB类型字段(BLOB、CLOB等),IMP时失败,提示表空间不存在。

原因:
是LOB类型的数据全部存储在表空间中,表中只存放指针,即使在建表时没指定表空间,数据也全部存入该数据库默认表空间中。 

解决方法: 

使用IMP导入数据库文件: 

  1.在被导入数据库中创建与原数据库名称相同表空间,修改默认表空间为此表空间。若在建表时指定了LOB字段表空间,则在被导入数据库中创建存放此LOB字段表空间。 

  2.若被导入数据库中强制指定其他表空间存储LOB字段,可在第一步导入数据后,执行空间迁移命令一定LOB数据到指定的表空间。  www.2cto.com  

命令: 

alter table tb_name move tablespace tbs_name lob (col_lob1,col_lob2) store as(tablesapce tbs_name); 

 

tb_name :表名&nbsporacle账号;

tbs_name:表空间名 

col_lob1,col_lob2:LOB字段名

 

 

 

 

作者 zhaojy

此条目发表在oracle metalink账号分类目录,贴了标签。将固定链接加入收藏夹。