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