oracle导出数据有多种方式,可以使用exp命令导出,或者用可视化软件导出,还可以使用oracle的数据泵导出
以下sql语句可导出某些表的部分数据
--oracle用户名 / 密码 @数据库ip地址 /oracle实例(相当于数据库名,默认安装实例名就是orcl)
exp system/123456@127.0.0.1/orcl
file=C:\Users\y\Desktop\database\xk_user.dmp ---导出后文件的存储路径
tables=(t_studen,t_study...) ---需要导出数据的表,多个表之间用 , 隔开
QUERY=\"WHERE rownum < 1000\"
log=C:\Users\y\Desktop\database\xk_user.log ---导出时产生日志
exp方式导出相关参数项:
关键字 | 说明 | 默认 |
---|---|---|
USERID | 用户名/口令 | |
FULL | 导出整个文件 | (N) |
BUFFER | 数据缓冲区的大小 | |
OWNER | 导出指定的所有者用户名列表 | |
FILE | 输出文件 | (EXPDAT.DMP) |
TABLES | 导出指定的表名列表 | |
COMPRESS | 是否压缩导出的文件 | (Y) |
RECORDLENGTH | IO记录的长度 | |
GRANTS | 导出权限 | (Y) |
INCTYPE | 增量导出类型 | |
INDEXES | 导出索引 | (Y) |
RECORD | 跟踪增量导出 | (Y) |
ROWS | 导出数据行 | (Y) |
PARFILE | 参数文件名 | |
CONSTRAINTS | 导出限制 | (Y) |
CONSISTENT | 交叉表一致性 | |
LOG | 屏幕输出的日志文件 | |
STATISTICS | 分析对象(ESTIMATE) | |
DIRECT | 直接路径 | (N) |
TRIGGERS | 导出触发器 | (Y) |
FEEDBACK | 显示每 x 行 (0) 的进度 | |
FILESIZE | 各转储文件的最大尺寸 | |
QUERY | 选定导出表子集的子句 | |
TRANSPORT_TABLESPACE | 导出可传输的表空间元数据 | (N) |
TABLESPACES | 导出指定的表空间列表 |
Oracle支持三种导入导出类型
1. 表方式 (T方式)
《 tables= (表名) 》指定需要导出的表,多个表用逗号隔开
可以使用以下命令查询当前用户的所有表名,这里拼接上 “,” 是方便复制出来可以直接使用,粘贴到文本软件中使用替换将所有换行符换成空字符即可,再将最后一个逗号删除就可以粘贴到命令上使用了。(表太多可能会执行失败,可以分批执行)
注意:复制完后检查一下表名,防止有乱码问题。我使用Navicat时为乱码,但是使用PLSQL没有出现乱码
select t.TABLE_NAME||',' from user_tables t
2. 用户方式 (U方式)
《 OWNER=用户名 》指定需要导出的用户
3. 全库方式 (Full方式)
使用system用户并加入《 full=y 》参数
参考文章
Oracle导出导入dmp文件(exp.imp命令行)
数据库每个表数据部分导出,保证系统正常运行
Oracle导出、生成表注释以及表字段的注释