导入数据库时,如果导出与导入的数据库表空间不一样且表中存在LOB类型字段(BLOB、CLOB等),IMP时失败,提示表空间不存在

时间:2021-11-15 19:10:31

问题: 迁移数据库时,如果表中存在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 :表名
tbs_name:表空间名
col_lob1,col_lob2:LOB字段名