oracle导出部分数据

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)
RECORDLENGTHIO记录的长度
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导出、生成表注释以及表字段的注释

### Oracle 数据库导出数据的方法 Oracle 提供了多种方法来导出中的数据,其中最常用的是 `expdp` 和 `exp` 命令。以下是这些工具的具体介绍以及示例。 #### 使用 Data Pump (`expdp`) 导出数据 Data Pump 是一种高效的数据导出方式,支持更多的功能选项,适合大规模数据迁移场景。通过命令行可以轻松实现特定或整个模式的导出操作[^1]。 ```bash expdp username/password@database_service_name \ DUMPFILE=output_file.dmp LOGFILE=log_output.log TABLES=table_name QUERY="WHERE condition" ``` - **username/password**: 登录数据库所需的用户名和密码。 - **database_service_name**: 远程数据库的服务名或者连接字符串。 - **TABLES**: 需要导出格名称列。 - **QUERY**: 可选参数,用于设置过滤条件以仅导出满足某些条件的数据。 例如,如果想从名为 `STUDENTS` 的中只导出成绩大于等于90的学生记录,则可执行如下命令: ```bash expdp student/123456@orcl DUMPFILE=students_high_scores.dmp LOGFILE=export_students.log TABLES=STUDENTS QUERY='WHERE GRADE >= 90' ``` #### 利用传统 Export 工具(`exp`) 对于较旧版本的 Oracle 或者更简单的使用需求来说,传统的 `exp` 工具也是一个不错的选择。它虽然不如 Data Pump 功能强大,但在许多情况下仍然非常实用[^1]。 基本语法结构如下所示: ```bash exp userid=username/password file=output_file.dmp log=log_output.log tables=(table_name) query=\"WHERE column=value\" ``` 注意这里的查询语句需要用双反斜杠转义特殊字符如单引号等。 实例演示: 假设我们要把部门编号为10的所有员工信息保存下来形成备份文件employee_dept10.dmp: ```bash exp hr/hr file=/path/to/export/employee_dept10.dmp log=/path/to/logs/exp_employee_dept10.log tables=EMPLOYEES query=\"WHERE DEPARTMENT_ID = 10\" ``` #### 不含数据的元数据导出 当只需要获取定义而不需要实际存储任何行级数据时,可以通过调整参数完成此任务。比如,在创建 Hive 之前先准备好对应的 Oracle 结构描述就是典型的应用场合之一[^2]。 此时只需省略掉那些涉及具体数值传递的部分即可达成目标。下面给出一个例子说明怎样单独提取某个对象类型的DDL脚本而不复制关联实体的内容过去: ```bash impdp system/syspassword DIRECTORY=data_pump_dir DUMPFILE=input_dump.dmp INCLUDE=INDEX EXCLUDE=TABLE_DATA REMAP_SCHEMA=schema_old:schema_new ``` 这里我们特别强调保留索引的同时忽略原始里的所有条目项[^3]。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值