参考 :
https://bbs.csdn.net/topics/392336192?page=1
https://www.iyunv.com/thread-155492-1-1.html
https://blog.51cto.com/u_1197822/2157013
https://bbs.csdn.net/topics/310260883
oracle版本 : Release 11.2.0.1.0
docker版本 : Docker version 19.03.8, build afacb8b
把test用户下的student表的STUID大于等于25及小于28的结构和数据导入到test2用户的TS_TEST2表空间
导出
exp test/test@127.0.0.1:1521/HELOWIN file=/home/oracle/data/test/ts_test_student.dmp buffer=67108864 statistics=none consistent=y Tables=STUDENT query=\"where STUID \>\=25 and STUID \<28\"
导入
imp test2/test2@127.0.0.1:1521/HELOWIN file=/home/oracle/data/test/ts_test_student.dmp TABLESPACES=TS_TEST2 full=y
注 :
1.如果加上“full=y”,将整个数据库全部导出,需要特殊的权限(具体什么权限没研究过),一般用system用户就足够了,普通用户是不可以的
2.不加“full=y”,默认导出连接数据库的用户数据库对象,比如:exp aaa/abc@oracle file=a.dmp,导出aaa模式下的所有数据库对象
3.你说的有多个用户,可以使用system来指定导出哪个用户的数据库对象,比如:exp aaa/abc@oracle file=a.dmp owner=(bbb,ccc),普通用户是不可以指定owner的
4.数据有多个实例的情况,这个要看你“@”后面是什么,如果@oracle,则在oracle实例上进行导出,@ora,则在ora实例上进行导出