Oracle分区表数据导入导出.doc

\o 导入导出 Oracle 分区表数据 导入导出 Oracle 分区表数据 -- 导入导出 Oracle 分区表数据 --**************************** 导入导出Oracle 分区表数据是Oracle DBA 经常完成的任务之一。分区表的导入导出同样普通表的导入导出方式,只不过导入导出需要考虑到分区的特殊性,如分区索引,将分区迁移到普通表,或使用原始分区表导入到新的分区表。下面将描述使用imp/exp,impdp/expdp导入导出 分区表数据。 ? 有关分区表的特性请参考: Oracle 分区表 SQL server 2005 切换分区表 SQL server 2005 基于已存在的表创建分区 ? 有关导入导出工具请参考: 数据泵EXPDP 导出工具的使用 数据泵IMPDP 导入工具的使用 ? 有关导入导出的官方文档请参考: Original Export and Import ? 一、分区级别的导入导出 可以导出一个或多个分区,也可以导出所有分区(即整个表)。 可以导入所有分区(即整个表),一个或多个分区以及子分区。 对于已经存在数据的表,使用imp导入时需要使用参数IGNORE=y,而使用impdp,加table_exists_action=append | replace 参数。 ? 二、创建演示环境 1.查看当前数据库的版本 SQL select * from v$version where rownum 2; ? BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production ? 2.创建一个分区表 select * from user_tab_partitions; 查询有分区的表 SQL alter session set nls_date_format=yyyy-mm-dd; ? SQL CREATE TABLE tb_pt ( sal_date DATE NOT NULL, sal_id NUMBER NOT NULL, sal_row NUMBER(12) NOT NULL) partition by range(sal_date) ( partition sal_11 values less than(to_date(2012-01-01,YYYY-MM-DD)) , partition sal_12 values less than(to_date(2013-01-01,YYYY-MM-DD)) , partition sal_13 values less than(to_date(2014-01-01,YYYY-MM-DD)) , partition sal_14 values less than(to_date(2015-01-01,YYYY-MM-DD)) , partition sal_15 values less than(to_date(2016-01-01,YYYY-MM-DD)) , partition sal_16 values less than(to_date(2017-01-01,YYYY-MM-DD)) , partition sal_other values less than (maxvalue) ) nologging; ? 3.创建一个唯一索引 CREATE UNIQUE INDEX tb_pt_ind1 ON tb_pt(sal_date) nologging; 4.为分区表生成数据 SQL INSERT INTO tb_pt SELECT TRUNC(SYSDATE)+ROWNUM, dbms_random.random, ROWNUM FROM dual CONNECT BY LEVEL=5000; ? SQL commit; ? SQL select count(1) from tb_pt partition(sal_11); ? COUNT(1) ---------- 300 ? SQL select count(1) from tb_pt partition(sal_other); ? COUNT(1) ----------

文档评论(0)

1亿VIP精品文档

相关文档