- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
导入导出 Oracle 分区表数据
导入导出 Oracle 分区表数据-CUUG --**************************** -- 导入导出 Oracle 分区表数据 --**************************** 导入导入Oracle 分区表数据是Oracle DBA 经常完成的任务之一。分区表的导入导出同样普通表的导入导出方式,只不过导入导出需要考虑到分区的特殊性,如分区索引,将分区迁移到普通表,或使用原始分区表导入到新的分区表。下面将描述使用imp/exp,impdp/expdp导入导出分区表数据。 一、分区级别的导入导出 可以导出一个或多个分区,也可以导出所有分区(即整个表)。 可以导入所有分区(即整个表),一个或多个分区以及子分区。 对于已经存在数据的表,使用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.创建一个分区表 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) ---------- 2873 SQL select * from tb_pt partition(sal_12) where rownum 3; SAL_DATE SAL_ID SAL_ROW --------- ---------- ---------- 01-JAN-12 -1.356E+09 301 02-JAN-12 -761530183 302 三、使用exp/imp导出导入分区表数据 1.导出整个分区表 [oracle@node1 ~]$ exp scott/tiger file=/u02/dmp/tb_pt.dmp log=/u02/dmp/tb_pt.log tables=tb_pt Export: Release 11.2.0.1.0 - Production on Wed Mar 9 1
文档评论(0)