Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2880769
  • 博文数量: 599
  • 博客积分: 16398
  • 博客等级: 上将
  • 技术积分: 6875
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-30 12:04
个人简介

WINDOWS下的程序员出身,偶尔也写一些linux平台下小程序, 后转行数据库行业,专注于ORACLE和DB2的运维和优化。 同时也是ios移动开发者。欢迎志同道合的朋友一起研究技术。 数据库技术交流群:58308065,23618606

文章分类

全部博文(599)

文章存档

2014年(12)

2013年(56)

2012年(199)

2011年(105)

2010年(128)

2009年(99)

分类: Oracle

2009-12-29 14:19:27


  平时我们在导出表的数据过程中可能也要导出相应的序列,如果我们调用下面的导出命令,

  expdp admin/admin directory=test dumpfile=test.dp tables=(t,t1)

   Oracle只会导出表的数据及其依赖表的对象.譬如INDEX,CONSTRAINTS,STATISTICS等。序列并不会导出,如果要导出序列我们需要借助INCLUDE参数。但是TABLE作业中NCLUDE=SEQUENCE:"='SEQUENCE1'"并不支持,将会产生“ORA-39038: 对象路径 "SEQUENCE" 在 TABLE 作业中不受支持。”的错误。
 
C:\>type parfile.par
userid=admin/admin
directory=test
dumpfile=seq.dp
tables=yan
include=sequence:"='YAN_S'"
 
C:\>expdp PARFILE=parfile.par
 
Export: Release 10.2.0.1.0 - Production on 星期二, 29 12月, 2009 13:47:42
Copyright (c) 2003, 2005, Oracle.  All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
ORA-39001: 参数值无效
ORA-39038: 对象路径 "SEQUENCE" 在 TABLE 作业中不受支持。
SQL> SELECT * FROM TABLE_EXPORT_OBJECTS WHERE OBJECT_PATH LIKE '%SEQUENCE%'
未选定行
但是在SCHEMA作业中,我们是可以同时导出表和序列的。
 
SQL> SELECT OBJECT_PATH FROM SCHEMA_EXPORT_OBJECTS WHERE OBJECT_PATH LIKE '%SEQUENCE%';
OBJECT_PATH
--------------------------------------------------------------------------------
SCHEMA_EXPORT/SEQUENCE
SEQUENCE

C:\>type parfile.par
userid=admin/admin
directory=test
dumpfile=seq.dp
include=sequence:"='YAN_S'"
INCLUDE=TABLE:"IN 'YAN'"
JOB_NAME=HAN
 

C:\>expdp parfile=parfile.par

Export: Release 10.2.0.1.0 - Production on 星期二, 29 12月, 2009 14:00:22 Copyright (c) 2003, 2005, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options 自动启用 FLASHBACK 以保持数据库完整性。启动 "ADMIN"."HAN": parfile=parfile.par 正在使用 BLOCKS 方法进行估计... 处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA 使用 BLOCKS 方法的总估计: 64 KB 处理对象类型 SCHEMA_EXPORT/SEQUENCE/SEQUENCE 处理对象类型 SCHEMA_EXPORT/TABLE/TABLE 处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX 处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS 处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT . . 导出了 "ADMIN"."YAN" 5.570 KB 2 行已成功加载/卸载了主表 "ADMIN"."HAN" ****************************************************************************** ADMIN.HAN 的转储文件集为: E:\DATAPUMP\SEQ.DP 作业 "ADMIN"."HAN" 已于 14:00:33 成功完成。


 
 
在导出过中,通过下面的语句可以查看作业的状态:
 
 
 
SQL> SELECT OPERATION,JOB_MODE,STATE FROM USER_DATAPUMP_JOBS WHERE JOB_NAME='HAN';
OPERATION  JOB_MODE   STATE
---------- ---------- ----------
EXPORT     SCHEMA     EXECUTING
 
至此,序列和表已经导出。

下面进行测试一下。
SQL> SELECT * FROM YAN;
        ID        ID2 NAME
---------- ---------- --------------------
         1          2 ba
         2          1 dad
SQL> SELECT YAN_S.NEXTVAL FROM DUAL;
   NEXTVAL
----------
         1
SQL> DROP TABLE YAN PURGE;
表已删除。
SQL> DROP SEQUENCE YAN_S;
序列已删除。
SQL> SELECT * FROM YAN;
SELECT * FROM YAN
              *
第 1 行出现错误:
ORA-00942: 表或视图不存在

SQL> SELECT YAN_S.NEXTVAL FROM DUAL;
SELECT YAN_S.NEXTVAL FROM DUAL
       *
第 1 行出现错误:
ORA-02289: 序列不存在

 

C:\>impdp admin/admin directory=test dumpfile=seq.dp

Import: Release 10.2.0.1.0 - Production on 星期二, 29 12月, 2009 14:12:43 Copyright (c) 2003, 2005, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options 已成功加载/卸载了主表 "ADMIN"."SYS_IMPORT_FULL_01" 启动 "ADMIN"."SYS_IMPORT_FULL_01": admin/******** directory=test dumpfile=seq.d p 处理对象类型 SCHEMA_EXPORT/SEQUENCE/SEQUENCE 处理对象类型 SCHEMA_EXPORT/TABLE/TABLE 处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA . . 导入了 "ADMIN"."YAN" 5.570 KB 2 行处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX 处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS 处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT 作业 "ADMIN"."SYS_IMPORT_FULL_01" 已于 14:12:45 成功完成

 
SQL> SELECT * FROM YAN;
        ID        ID2 NAME
---------- ---------- --------------------
         1          2 ba
         2          1 dad
SQL> SELECT YAN_S.NEXTVAL FROM DUAL;
   NEXTVAL
----------
         1
 
 
 
 
 
阅读(3068) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~