使用exp/imp导出/导入Oracle数据库表结构信息和表数据
问题:
oracle数据库表中含有blob字段,导出表提示有blob字段无法导出.sql类型的文件 解决办法 用命令导出.dmp文件 cmd 命令吧oracle表结构和数据
参考地址:https://blog.csdn.net/qq_40493944/article/details/110122323
一、导出
1 exp username/password@Oracle数据库安装ip地址:端口/SID file=路径及文件名 2 3 eg: 4 --导出全部表结构和数据 5 exp root/root@10.5.34.233:1521/test file=‘D:\daochu.dmp’
2.导出指定的表
1 exp username/password@Oracle数据库安装ip地址:端口/SID file=路径及文件名 tables=(表名1,表名2,...) 2 3 eg: 4 --导出指定的表table1,table2 5 exp root/root@10.5.34.233:1521/test file=‘D:\daochu.dmp’ tables=(table1,table2)
3.导出表空间中以XX开头的表
1 exp username/password@Oracle数据库安装ip地址:端口/SID file=路径及文件名 tables=(XX%) 2 3 eg: 4 --导出表空间中以AB开头的所有表结构和数据 5 exp root/root@10.5.34.233:1521/test file=‘D:\daochu.dmp’ tables=(AB%)
4.仅导出表结构,不导出数据
1 exp username/password@Oracle数据库安装ip地址:端口/SID file=路径及文件名 rows = n
5.注意
因为oracle为了节约空间,对于空表不分配segment,所以对于空表使用exp命令导不出来,有以下几种解决办法:
使用以下语句设置空表可以导出,设置后需要重启数据库。
1 alter system set deferred_segment_creation = false
对需要导出的空表插入一条数据再删除,此刻该表就产生了segment,再导出时就可以成功了。
执行以下语句,也可以导出。
1 alter table 空表名 allocate extent;
二、导入
已经存在导出的.dmp文件,则可以使用以下语句将其导入到你需要导入的目标数据库中。