常见导出方式
可导出表结构,表数据,可导出.sql
但遇到有blob(大文本类型)字段时无法使用.sql类型文件
2.用命令行导出
exp命令行,方便快速
也可以导出带有blob类型字段的表数据
这里主要说下命令导出
导出命令:
exp USERID=username/password@10.10.10.10/orcl TABLES=your_table_name FILE=C:\Users\Administrator\Desktop\your_table_name.dmp LOG=C:\Users\Administrator\Desktop\export.log
解释:
|----------|----------------|----------------------|
| USERID | 用户名/密码和连接字符串 | scott/tiger@orcl |
| FILE | 输出的导出文件名称 | my_export.dmp |
| LOG | 日志文件名称 | export.log |
| FULL | 是否导出整个数据库 | FULL=y |
| OWNER | 导出一个或多个用户的所有对象 | OWNER=scott |
| TABLES | 导出一个或多个表 | TABLES=(emp, dept) |
如果有大数据需求,可以使用expdp命令
expdp username/password@10.10.10.10/orcl TABLES=tablename DIRECTORY=DATA_PUMP_DIR DUMPFILE=tablename.dmp LOGFILE=export.log
导入
基本语法:
imp USERID=用户名/密码@连接字符串 FILE=导出文件路径 LOG=导入日志路径 [其他参数]
针对您的情况:
imp USERID=username/password@10.10.10.10/orcl FILE=C:\Users\您的用户名\Desktop\tablename.dmp LOG=C:\Users\您的用户名\Desktop\import.log
2. 常用的导入参数
根据您的需求选择不同的参数:
a) 完全导入(推荐先测试)
bash
# 只显示导入内容,不实际执行(测试用)
imp USERID=username/password@10.10.10.10/orcl FILE=桌面路径\tablename.dmp SHOW=y FULL=y
b) 导入整个文件
bash
imp USERID=username/password@10.10.10.10/orcl FILE=桌面路径\tablename.dmp LOG=桌面路径\import.log FULL=y
c) 只导入表结构,不导入数据
bash
imp USERID=username/password@10.10.10.10/orcl FILE=桌面路径\tablename.dmp LOG=桌面路径\import.log ROWS=n
d) 只导入数据,不导入结构(表必须已存在)
bash
imp USERID=username/password@10.10.10.10/orcl FILE=桌面路径\tablename.dmp LOG=桌面路径\import.log IGNORE=y
IGNORE=y 会忽略创建错误(如表已存在),只导入数据。
3. 处理表已存在的情况
如果目标数据库中已经存在同名的表,您有以下选择:
选项1:忽略错误继续导入数据
bash
imp USERID=username/password@10.10.10.10/orcl FILE=桌面路径\tablename.dmp IGNORE=y
选项2:先删除现有表再导入
bash
# 首先在SQL*Plus中删除表
SQL> DROP TABLE tablename;
# 然后导入
imp USERID=username/password@10.10.10.10/orcl FILE=桌面路径\tablename.dmp