数据迁移 更改表空间 用PLSQL developer导出表的数据为 .dmp格式的数据文件 ,迁移到其他机器上时 会因为 没有对应名称的表空间而导致一些表不能导入。想请教一下 该如何解决。 我不想在新的机器上建立同样的表空间,因为原来的命名不规范。 能不能先导出表结构,再迁移数据呢?像DB2一样。 那么导出的数据如何能不包含原始表空间的信息那? 因为含有CLOB字段,所以也不能用导出SQL语句的方式。望各位给予指导... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 解决: 方法一:可以将导出的dmp文件用UE打开,用16进制编辑器编辑,将原来的表空间名换成将要导入的表空间名并保存,然后通过imp进行导入,假如导出用户和导入用户不同,在导入时要指定fromuser,touser (当然直接在dmp文件中替换了也是可以的),这种方法比较简单,经测试成功,但对于较大的dmp文件就不适用了。 方法二:可以先导入建表的sql(这里需要注意导出sql时不支持clob字段,用pl/sql dev导出nvarchar2(225)又无法导出,所以建议使用pl/sql dev导出用户对象),然后将sql中的表空间名,用户名替换执行即可建表。然后再导入dmp文件,导入时可以忽略错误,但不知道为什么一些因为有外键的会无法导入(这个导入顺序上个人觉得orcle不会这么傻啊),没办法,只能导两次了。 imp 指定 indexfile参数,获得建表语句,执行之后,再导入表数据。 1.在新库上创建所有的数据库对象2.从旧库导出数据3.导入新库数据,忽略创建错误 (ignore=Y)imp帮助查看 感谢大家的回复, 想问一下导出用户对象的时候是不是在建表脚本里看不到外键的定义?外键的定义在dmp文件里? [zftang] 说由于外键原因需要导两次 是因为第一次可以将被参照表导入 再做一次可以将含有外键的表导入吗? 那这样会不会有表的数据重复了啊?因为忽略了建表的错误 重新创建spfile文件以后,再启动数据库报错 重装oracle后恢复数据库遇到的许多问题,请高手们帮帮忙 oracle数据库中如何将行以列的形式显示。 监听程序无法启动专用服务器进程---在线等待 急问一个Union问题 查询性能调优求救 请问哪里有oracle9i for Linux的版本下载 怎样修改字段类型???? 建视图可以跨用户吗! 紧急事情!如何在P4的机器上安装ORACLE 8I呀!请快点告诉我呀!重谢! net configuration assistant无法创建新数据库 在solaris下用root与用oracle用户登陆oracle的问题
方法一:可以将导出的dmp文件用UE打开,用16进制编辑器编辑,将原来的表空间名换成将要导入的表空间名并保存,然后通过imp进行导入,假如导出用户和导入用户不同,在导入时要指定fromuser,touser (当然直接在dmp文件中替换了也是可以的),这种方法比较简单,经测试成功,但对于较大的dmp文件就不适用了。
方法二:可以先导入建表的sql(这里需要注意导出sql时不支持clob字段,用pl/sql dev导出nvarchar2(225)又无法导出,所以建议使用pl/sql dev导出用户对象),然后将sql中的表空间名,用户名替换执行即可建表。然后再导入dmp文件,导入时可以忽略错误,但不知道为什么一些因为有外键的会无法导入(这个导入顺序上个人觉得orcle不会这么傻啊),没办法,只能导两次了。
2.从旧库导出数据
3.导入新库数据,忽略创建错误 (ignore=Y)
imp帮助查看
感谢大家的回复, 想问一下导出用户对象的时候是不是在建表脚本里看不到外键的定义?外键的定义在dmp文件里? [zftang] 说由于外键原因需要导两次 是因为第一次可以将被参照表导入 再做一次可以将含有外键的表导入吗? 那这样会不会有表的数据重复了啊?因为忽略了建表的错误