大家好,小弟有个问题想请教大家一下。
我新建了个表空间叫asp
在这个数据库下有个用户SDMB_ADMIN
这个用户下有个表叫tb_sms_phrase,我想把这张表导出来,并把它导入到
另一个新建的表空间unicom中的SDMB_ADMIN用户下。
各位大哥,怎么做。小弟刚开始学oracle对这不太懂,,帮帮小弟吧。。在此谢谢了。急用,在线等。
我新建了个表空间叫asp
在这个数据库下有个用户SDMB_ADMIN
这个用户下有个表叫tb_sms_phrase,我想把这张表导出来,并把它导入到
另一个新建的表空间unicom中的SDMB_ADMIN用户下。
各位大哥,怎么做。小弟刚开始学oracle对这不太懂,,帮帮小弟吧。。在此谢谢了。急用,在线等。
1、EXP:
有三种主要的方式(完全、用户、表)
1、完全:
EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
如果要执行完全导出,必须具有特殊的权限
2、用户模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC
这样用户SONIC的所有对象被输出到文件中。
3、表模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)
这样用户SONIC的表SONIC就被导出
2、IMP:
具有三种模式(完全、用户、表)
1、完全:
IMP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
2、用户模式:
IMP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP FROMUSER=SONIC TOUSER=SONIC
这样用户SONIC的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据。
3、表模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)
这样用户SONIC的表SONIC就被导入。
如果仅仅是需要把一个表的记录或者表结构转移到另一个表空间,可以用更直接的方法:1.得到tb_sms_phrase的建表脚本
2.更新脚本使用新的表空间
3.insert into tb_sms_phrase_new
select * from tb_sms_phrase
4.如果记录量大的话,使用/*+append*/,以提高效率
5.有一点,你这里是同一个实例的话,即使在不同的表空间,表的名字是不可以重复的,所以,你需要命名一下,实例眼中的表,是不分表空间的,呵呵楼上推荐的方法也是很好的
EXP SDMB_ADMIN/SDMB_ADMIN BUFFER=64000 FILE=C:\tb_sms_phrase.DMP OWNER= SDMB_ADMIN TABLES=(tb_sms_phrase)
IMP SDMB_ADMIN/SDMB_ADMIN BUFFER=64000 FILE=C:\tb_sms_phrase.DMP OWNER= SDMB_ADMIN TABLES=(tb_sms_phrase_new)