暂无图片
实用技巧:Oracle expdp 导出时如何排除表的列
最近更新:2022-07-20 14:23:37

概念描述

有时候我们在搭建测试环境需要从生产库中导出数据来测试时,发现生产数据太大,数据库存放了大量图片等大对象数据,测试环境空间不够,但这些图片数据在测试时是可以不用的。那么我们如何在导出时排除这些图片等大对象数据呢 在expdp中提供对导出数据进行选择的参数有:exclude、include、query; exclude和include是一对反义词,用来导出时选择排除(exclude)相关对象或者只导出选择(include)对象及其相关依赖对象。include和exclude操作的都是对象类型,所以对某张表的部分数据进行选择是不可行的,那么还剩下一个query参数可以期待下。 expdp -help看下QUERY注释如下: QUERY Predicate clause used to export a subset of a table. For example, QUERY=employees:"WHERE department_id > 10". 从注释中可以看到 query是用来导出一个表子集的谓词条件,相当于只能作用于 查询的where部分,没办法用于选择 select 列部分,所以query也是没办法实现不导出大对象(某一列)的需求的。 VIEWS_AS_TABLES 从上面看11g及之前是没有办法实现需求了,但12C及之后expdp引进了一个新的参数:VIEWS_AS_TABLES expdp -help看下VIEWS_AS_TABLES注释如下: Identifies one or more views to be exported as tables. For example, VIEWS_AS_TABLES=HR.EMP_DETAILS_VIEW. VIEWS_AS_TABLES 用于对将一个或多个视图数据作为表被导出,意思就是可以直接导出视图的数据了。

......