ORACLE EXPDP的 EXCLUDE选项指定不导出的数据库对象

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/allway2/article/details/102707585


EXCLUDE = object_type [:name_clause ] [,...]
所述object_type指定对象的类型将被排除在外。要查看的有效值列表object_type,请查询以下视图:DATABASE_EXPORT_OBJECTS完整模式,SCHEMA_EXPORT_OBJECTS模式模式以及TABLE_EXPORT_OBJECTS表和表空间模式。列中列出的值OBJECT_PATH是有效的对象类型。
给定导出模式的所有对象类型都将包含在导出中,语句中指定的对象类型除外EXCLUDE。如果排除对象,则其所有从属对象也将排除。例如,排除一个表也将排除该表上的所有索引和触发器。
该name_clause是可选的。它允许选择对象类型内的特定对象。这是一个SQL表达式,用作对类型的对象名称的过滤器。它由一个SQL运算符和与指定类型的对象名称进行比较的值组成。将name_clause仅适用于对象类型,其实例有名称(例如,它适用于TABLE,但不是GRANT)。必须使用冒号将其与对象类型分开,并用双引号引起来,因为需要单引号来分隔名称字符串。例如,您可以设置EXCLUDE=INDEX:"LIKE 'EMP%'"为排除名称以开头的所有索引EMP。
您为该名称提供的名称name_clause必须完全匹配,包括上下大小写以及数据库中现有的对象。例如,如果name_clause您提供的是名为的表EMPLOYEES,则必须存在一个EMPLOYEES使用大写字母命名的现有表。如果name_clause以Employees或employees或任何其他变体形式提供,则找不到该表。
如果未name_clause提供,则排除指定类型的所有对象。
EXCLUDE可以指定多个语句。
根据您的操作系统,在为此参数指定值时使用引号也可能需要使用转义符。Oracle建议您将此参数放在参数文件中,这样可以减少命令行上否则可能需要的转义符的数量。
也可以看看:
•    “ INCLUDE”有关使用参数文件的示例
•    “在数据泵命令行上使用引号”
如果object_type您指定的是CONSTRAINT,GRANT或USER,则应了解其所产生的效果,如以下段落所述。
排除约束
以下约束不能明确排除:
•    NOT NULL 约束
•    成功创建和加载表所需的约束;例如,用于索引编排表主键约束,或REF SCOPE和WITH ROWID约束与表REF列
这意味着以下EXCLUDE语句将被解释为:
•    EXCLUDE=CONSTRAINT将排除所有(非引用)约束,但NOT NULL约束以及成功创建和加载表所需的任何约束除外。
•    EXCLUDE=REF_CONSTRAINT 将排除参照完整性(外键)约束。
不包括赠款和用户
指定EXCLUDE= GRANT排除所有对象类型上的对象授予和系统特权授予。
指定EXCLUDE= USER仅排除用户的定义,而不排除用户模式中包含的对象。
要排除特定用户和该用户的所有对象,请指定以下命令,其中hr是要排除的用户的架构名称。
expdp FULL=YES DUMPFILE=expfull.dmp EXCLUDE=SCHEMA:"='HR'"
请注意,在这种情况下,将导出模式FULL指定为。如果未指定任何模式,则将使用默认模式SCHEMAS。这将导致错误,因为该命令将指示该模式应同时导出和排除。
如果您尝试使用诸如之类的语句来排除用户EXCLUDE=USER:"='HR'",则仅CREATE USER hrDDL语句中使用的信息将被排除,并且您可能无法获得预期的结果。
限制条件
•    在EXCLUDE和INCLUDE参数是互斥的。

以下是使用该EXCLUDE语句的示例。
> expdp hr DIRECTORY = dpump_dir1 DUMPFILE = hr_exclude.dmp EXCLUDE = VIEW,
包装,功能
这将导致架构模式导出(默认导出模式),在该hr模式下将导出除视图,包和函数以外的所有架构。
也可以看看:
•    “导出操作期间的过滤”以获取有关使用EXCLUDE参数的影响的更多信息
 

猜你喜欢

转载自blog.csdn.net/allway2/article/details/102707585
今日推荐