EXP的QUERY参数

QUERY
默认:none
当导出模式为表模式时,此参数可以选择这些表中的子集。query参数的相当于在select语句中增加了where条件。此条件应用于tables参数中的所有表。需要注意的是,query参数必须适合所有表,比如有某张表无where中的列,那就会报错。
query参数限制:
1 不能用在full,user,表空间导出模式。
 2 参数应用于所有表,不能特别指定某张表。
3 direct path export不能使用query参数。因为direct path export没有通过sql应用层,不会使用where条件去应用query参数。
4 不能应用于嵌套表。
5 不能确定结果集是否是query的结果集

我们来做个实验来进一步认识上面的解释
[oracle@lzl ~]$ vi parfile_lzl.txt 
[oracle@lzl ~]$ cat parfile_lzl.txt 
userid=scott/tiger
file=/home/oracle/exp_lzl.dmp
log=/home/oracle/exp_lzl.log
tables=emp
buffer=1024
query="where rownum<=1
[oracle@lzl ~]$ cat exp_lzl.log 
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
About to export specified tables via Conventional Path ...
. . exporting table                            EMP          1 rows exported
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
Export terminated successfully with warnings.
从日志来看,只可以看到行数。这样就必须要先查询导出表的行数,是否行数于导出行数一致才可以判断是否使用了query参数。在看dmp文件,因为dmp是二进制文件,所以要使用strings命令
[oracle@lzl ~]$ strings exp_lzl.dmp 
TEXPORT:V11.02.00
DSCOTT
RTABLES
8192
                                       Sun Jul 9 10:16:13 2017/home/oracle/exp_lzl.dmp
#G#G
#G#G
+00:00
BYTE
UNUSED
INTERPRETED
DISABLE:ALL
METRICST
TABLE "EMP"
CREATE TABLE "EMP" ("EMPNO" NUMBER(4, 0), "ENAME" VARCHAR2(10), "JOB" VARCHAR2(9), "MGR" NUMBER(4, 0), "HIREDATE" DATE, "SAL" NUMBER(7, 2), "COMM" NUMBER(7, 2), "DEPTNO" NUMBER(2, 0))  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" LOGGING NOCOMPRESS

ANALCOMPUTE TR "EMP" ANALYZE  TABLE "EMP"  ESTIMATE STATISTICS 
ENDTABLE
METRICET 3
METRICSTEnable enforce constraints 
TABLE "EMP"
ALTER TABLE "EMP" ENABLE CONSTRAINT "FK_DEPTNO"
ENDTABLE
METRICET 4
METRICETG0
EXIT
EXIT
dmp文件其实显示的是表的创建语句及其索引,约束,统计信息的统计信息等等。所以使用了query参数后最好有记录,不然难以找到where子句到底写了什么。使用参数文件就是一个很好的记录方法。



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31461640/viewspace-2141779/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31461640/viewspace-2141779/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Oracle中使用exp工具可以导出数据库中的数据,但不会导出结构信息(如表结构、索引等)。可以使用命令 "exp user/password@database file=filename.dmp tables=table1,table2,..." 来导出特定的表的数据。 ### 回答2: Oracle数据库中,可以使用exp命令来导出数据。exp是Oracle数据库提供的一个工具,可以将数据库中的数据导出为一个文件,这样可以将数据备份或者迁移到另一个数据库中进行使用。 使用exp命令导出数据非常简单。首先,需要登录到Oracle数据库的命令行界面,然后输入以下的命令: exp username/password file=export.dmp tables=(table1, table2, ...) 其中,username/password表示登录数据库所使用的用户名和密码,file表示指定导出数据的文件名,tables表示需要导出数据的表名。可以导出多个表的数据,只需要在tables参数中指定多个表名即可。 执行以上命令后,exp将会开始导出指定表的数据,并将数据保存为一个二进制文件(以.dmp为后缀名)。这个文件中包含了指定表的数据以及相关的数据库对象信息。导出过程中,exp会显示出导出的进度和相关信息。 导出完成后,可以将导出的数据文件复制到其他地方进行备份或者迁移。可以使用imp命令来将导出的数据文件导入到另一个数据库中,实现数据的恢复或者迁移。 需要注意的是,exp只能导出数据,无法导出数据库的表结构、触发器、视图、存储过程等其他数据库对象。如果需要导出这些对象,可以考虑使用其他工具,如expdp。此外,exp导出的数据文件是二进制文件,无法直接编辑或者查看其中的数据内容,如果需要查看或者编辑导出的数据,可以考虑使用其他工具,如文本编辑器、数据库查询工具等。 ### 回答3: Oracle使用exp命令可以将数据库中的数据导出到外部文件中,但仅限于导出数据,不包括数据库的结构、索引、存储过程等其他对象。 exp是Oracle数据库自带的命令行工具,用于数据导出。使用exp命令可以选择性地导出指定表、指定用户或整个数据库的数据,并将其保存为.dmp文件。导出的数据可以包括表的所有行和列,也可以根据需要进行过滤和选择。 为了使用exp命令,首先需要连接到Oracle数据库实例,并确保用户具有足够的权限执行导出操作。在命令行中输入exp,然后根据提示输入用户名、密码和导出设置。 使用exp导出数据的常用选项包括: - tables:指定要导出的表名,多个表之间可以用逗号分隔; - query:指定导出数据的查询条件,只导出满足条件的数据; - file:指定导出文件的路径和名称; - consistent:保证导出的数据是一致的,即在导出开始之前使用一致性读取模式。 需要注意的是,exp只导出数据,不包括数据库的结构。如果需要导出数据库的结构,可以使用expdp命令或者第三方工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值