注意:指定 ROWS=n 不排除在导出文件中保存预先计算的统计信息,这使您可以使用来自生产数据库中的统计信息调整非生产数据库中查询计划的生成
TABLES默认值:无
指定导出是表模式导出,并列出要导出的表名、分区名以及子分区名。指定表名时可以指定以下内容:
schemaname 指定从中导出表或分区的用户的名称。如果未指定用户名,则使用导出用户。系统用户,例如 ORDSYS、MDSYS、CTXSYS、LBACSYS、ORDPLUGINS 由 Export 保留
tablename 指定要导出的表的名称。表级别的导出允许您导出整个分区表或非分区表。如果列表中的表已分区,并且未指定分区名称,则将导出其所有分区和子分区;表名可以包含任意数量的模式匹配字符 '%',它可以匹配表名中的 0 或多个字符;所有相关用户中与指定模式匹配的表都会被导出,就好像在参数中显式指定了相应的表名一样
partition_name 表示导出是分区级别的导出,可以表中导出一或多个指定的分区或子分区
语法格式如下:
schemaname.tablename:partition_name schemaname.tablename:subpartition_name如果使用 tablename:partition_name,则指定的表必须是带去表,并且partition_name 必须是其分区或子分区之一。如果指定的表未分区,则partition_name 被忽略,并导出整个表
Table Name Restrictions以下限制适用于表名:
1)默认情况下,数据库中的表名以大写形式存储。如果您的表名是大小写混合或小写形式,并且希望保留表名的大小写,则必须将该名称用引号引起来。该名称必须与存储在数据库中的表名全库匹配
某些操作系统要求在命令行上的引号前加上转义字符。以下是在不同的导出模式下,如何保留区分大小写的例子
在命令行模式下:
TABLES='\"Emp\"'在交互模式下:
Table(T) to be exported: "Emp"在参数文件模式下:
TABLES='"Emp"'2) 在命令行中指定的表名中不能包含 # 号,除非表名用引号引起来。同样,在参数文件中,如果表名包含 # 号,除非将表名使用引号引起来,否则 exp 会将该行的其余部分解释为注释
例如,如果该参数文件包含以下行,导出会将 emp# 后面的部分解释为注释,不会导出表 dept 和 mydata:
TABLES=(emp#, dept, mydata)但是,如果是下面的行, exp 会导出这三个表,因为它们 emp# 被包含在引号中:
TABLES=("emp#", dept, mydata)3)注意:某些操作系统需要单引号而不是双引号,或者相反。不同的操作系统在表的命名上也有其他限制
TABLESPACES默认值:无
TABLESPACES 参数指定将表空间中的所有表导出到转储文件,包括表空间中的所有表以及具有位于表空间中的所有的表分区。索引与其表一起导出,而不管索引存储在哪里
必须具有 EXP_FULL_DATABASE 角色,才能使用 TABLESPACES 导出表空间中的所有表
当 TABLESPACES 与 TRANSPORT_TABLESPACE=y 一起使用时,可以指定要从数据库导出到 dump 文件的表空间列表
TRANSPORT_TABLESPACE默认: n,如果指定为 y,则此参数启用可传输表空间元数据的导出
可传输表空间模式不支持加密列
注意:你不能导出可传输的表空间,然后将其导入到较低版本的数据库中。目标数据库必须与源数据库的版本级别相同或更高
TRIGGERS默认: y
指定 exp 是否导出触发器
USERID(用户名/密码)默认值:无
指定执行导出的用户的用户名、密码和可选连接字符串;如果您省略密码,则导出会提示您输入密码
如果以 SYS 用户身份连接,则还必须在连接字符串中指定 AS SYSDBA;您的操作系统可能会要求您将其 AS SYSDBA 视为特殊字符串,在这种情况下,整个字符串将用引号引起来 exp \'sys/oracle123 as sysdba\'