2012年8月27日星期一

【oracle】imp导入参数show=y

【oracle】imp导入参数show=y

在imp的帮助中: SHOW     just list file contents (N),默认为N。

下面通过实验说明2点:

1.show=y 可以显示dmp文件中创建对象的语句。

2.show=y 就如同oracle说的那样, just list file contents,这里不进行导入操作。

准备实验环境:

1.创建用户,并赋权:

SQL> create user testshow identified by a123;

User created

SQL> grant connect,resource to testshow;

Grant succeeded

SQL> grant create synonym to testshow
  2  /
Grant succeeded

2.创建对象:

SQL> create table test (id number,name varchar2(20));

Table created

SQL> create synonym emp for scott.emp;

Synonym created

3.查看对象是否创建成功:

SQL> select count(*) from emp;
  COUNT(*)
----------
        16
SQL> select * from test;
        ID NAME
---------- --------------------

开始实验:

1.导出testshow用户的所有对象

C:\Users\yafeishi>exp system/dang file=testshow.dmp  compress=n owner=testshow
Export: Release 10.2.0.3.0 - Production on 星期一 8月 27 13:20:00 2012
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即将导出指定的用户...
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 TESTSHOW 的外部函数库名
. 导出 PUBLIC 类型同义词
. 正在导出专用类型同义词
. 正在导出用户 TESTSHOW 的对象类型定义
即将导出 TESTSHOW 的对象...
. 正在导出数据库链接
. 正在导出序号
. 正在导出簇定义
. 即将导出 TESTSHOW 的表通过常规路径...
. . 正在导出表                            TEST导出了           0 行
. 正在导出同义词
. 正在导出视图
. 正在导出存储过程
. 正在导出运算符
. 正在导出引用完整性约束条件
. 正在导出触发器
. 正在导出索引类型
. 正在导出位图, 功能性索引和可扩展索引
. 正在导出后期表活动
. 正在导出实体化视图
. 正在导出快照日志
. 正在导出作业队列
. 正在导出刷新组和子组
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计信息
成功终止导出, 没有出现警告。

2.删除testshow下的test表和emp同名:

SQL> drop table test;

Table dropped

SQL> select * from test;

select * from test

ORA-00942: 表或视图不存在

SQL> drop synonym emp;

Synonym dropped

SQL> select count(*) from emp;

select count(*) from emp

ORA-00942: 表或视图不存在

3.show=y 进行导入操作

C:\Users\yafeishi>imp system/dang file=testshow.dmp log=testshow.log show=y from
user=testshow touser=testshow
Import: Release 10.2.0.3.0 - Production on 星期一 8月 27 13:20:45 2012
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 TESTSHOW 的对象导入到 TESTSHOW
"BEGIN  "
"sys.dbms_logrep_imp.instantiate_schema(schema_name=>SYS_CONTEXT('USERENV','"
"CURRENT_SCHEMA'), export_db_name=>'ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM', i"
"nst_scn=>'11274324817182');"
"COMMIT; END;"
"ALTER SESSION SET CURRENT_SCHEMA= "TESTSHOW""
"CREATE TABLE "TEST" ("ID" NUMBER, "NAME" VARCHAR2(20))  PCTFREE 10 PCTUSED "
"40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUP"
"S 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" LOGGING NOCOMPRESS"
. . 正在跳过表 "TEST"
"ALTER SESSION SET CURRENT_SCHEMA= "TESTSHOW""
"CREATE SYNONYM "EMP" FOR "SCOTT"."EMP""
成功终止导入, 没有出现警告。

可以看到日志打出了创建对象的语句,证明了第一点。

再查看库中对象是否导入:

SQL> select * from test;

select * from test

ORA-00942: 表或视图不存在

SQL> select count(*) from emp;

select count(*) from emp

ORA-00942: 表或视图不存在

看到对象并没有导入,证明了第二点。

4.show=n 导入

C:\Users\yafeishi>imp system/dang file=testshow.dmp log=testshow.log show=n igno
re=y fromuser=testshow touser=testshow
Import: Release 10.2.0.3.0 - Production on 星期一 8月 27 13:21:35 2012
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 TESTSHOW 的对象导入到 TESTSHOW
. . 正在导入表                          "TEST"导入了           0 行
成功终止导入, 没有出现警告。

SQL> select * from test;

        ID NAME

---------- --------------------

SQL> select count(*) from emp;

  COUNT(*)

----------

        16

对象也导入进来了。

---EOF

原文地址:http://blog.yafeishi.net/2012/08/oracle-imp-show-y.html


TAG: