前言
- imp和exp是oracle客户端安装目录下的一个exe文件,通过配置bin目录的环境变量可以直接在cmd窗口直接执行,而不是sqlplus.exe
- oracle数据导出的方式有很多,比如csv、excel、insert sql、copy from等多种方式,但是我需要导入导出的数据库中存在sdo_gemetory类型的字段,常规的导入导出方式都不支持。但imp和exp使用的是dmp格式文件,采用16进制的方式存储,于是完美的解决了我的问题,并且导入导出速度也还不错
exp导出语法说明
可输入 exp help=y
查看详细参数说明
1.导出数据库全部数据
仅输入数据库连接串和文件导出路径就可以执行导出,导出文件后缀为dmp
exp 用户名/密码@IP FILE=导出文件路径
2.按用户名导出
可支持多用户同时导出
exp 用户名/密码@IP FILE=导出文件路径 OWNER=(用户名1,用户名2)
3.按表名导出
可支持多表同时导出
exp 用户名/密码@IP FILE=导出文件路径 TABLES=(表名1,表名2)
4.按查询条件导出
QUERY指定查询条件
exp 用户名/密码@IP FILE=导出文件路径 TABLES=表名 QUERY=(where column_name1=1 and column_name2=2)
以下参数可根据实际需要选择,追加在后面即可
关键字 | 说明 | 默认值 |
---|---|---|
FULL | 导出整个文件 | N |
GRANTS | 导出权限 | Y |
TRIGGERS | 导出触发器 | Y |
INDEXES | 导出索引 | Y |
CONSTRAINTS | 导出约束 | Y |
ROWS | 导出数据行 | Y |
LOG | 日志文件输出 | - |
imp导入语法说明
可输入 imp help=y
查看详细参数说明
1.导入整个文件
imp 用户名/密码@IP FILE=导入文件路径 FULL=Y
2.按用户名导入
支持多用户名导入
imp 用户名/密码@IP FILE=导入文件路径 FULL=Y FROMUSER=导出用户名 TOUSER=导入用户名
3.按表名导入
可支持多表同时导入
imp 用户名/密码@IP FILE=导入文件路径 FULL=Y TABLES=(表名1,表名2)
以下参数可根据实际需要选择,追加在后面即可
关键字 | 说明 | 默认值 |
---|---|---|
FULL | 导入整个文件 | N |
GRANTS | 导入权限 | Y |
TRIGGERS | 导入触发器 | Y |
INDEXES | 导入索引 | Y |
CONSTRAINTS | 导入约束 | Y |
ROWS | 导入数据行 | Y |
LOG | 日志文件输出 | - |
DATA_ONLY | 仅导入数据 | N |
IGNORE | 忽略创建错误 | N |