ylbtech-Oracle:Oracle简单的备份和恢复-导出和导入(2)

 简单的备份和恢复-导出和导入(2)

1. 用户导入导出文件中的一张表(emp)返回顶部
0.1,
我们在sql plus中删除掉一张表emp,把dept表的记录删空。
drop table emp;
delete from dept;
之后我们先利用刚才导出的mytable.dmp导入emp表。具体导入步骤如下:
1.在命令行下输入imp命令。
2.系统首先提示我们输入用户名和密码,在这里我们可以用scott/tiger的形式同时输入用户名和密码。
3.系统提示我们从哪个文件导入数据,默认导入文件为EXPDATE.DMP,在这里我们输入c:\mytable.dmp。
4.系统提示我们输入插入缓冲区大小(最小为8192),默认值为30720,我们按回车接受默认值。
5.系统提示是否只列出导入文件的内容(yes/no):默认值是no,在这里我们一定要选择no,否则数据不会被顺利导入的。
6.系统提示我们由于对象已存在,忽略创建错误(yes/no):默认值是no,这里的具体含义是如果导入的对象在数据库中已经存在,如果重复创建就会出现一个错误,而我们这里应该忽略这个错误,这样导入操作才会继续进行,所以这里一定要选择yes。
7.接下来系统会提示是否导入权限(yes/no):默认值yes,是否导入数据(yes/no)默认值yes,我们接受这两个默认值,按两次回车继续。
8.系统询问是否导入整个导入文件(yes/no),默认值为no,也就是在导出文件中选择一部分数据导入,如果选择yes则会把所有导出文件中的内容都导入数据库中。
9.接下来系统提示我们输入用户名:原因是一个导出文件中可能有很多个用户的数据,我们要在此确定到底导出那个用户对象,我们输入scott,表示导出属于scott的数据。
10.之后系统提示我们输入,输出表(T)或分区(T:P)名称。空列表表示用户的所有表。我们输入emp表示导入导出文件中scott用户的emp表,如果直接按回车就表示导入scott的所有文件中的对象。
输入表(T)或分区(T:P)的名称或。如果完成:emp
11.接下来按回车表示只导入emp表,出现如下结果:
 
输入表 (T) 或分区 (T: P) 的名称或 。如果完成:

. 正在将 SCOTT 的对象导入到 SCOTT
. 正在将 SCOTT 的对象导入到 SCOTT
. . 正在导入表                           "EMP"导入了          14 行
即将启用约束条件...
IMP-00017: 由于 ORACLE 错误 2298, 以下语句失败:
 "ALTER TABLE "EMP" ENABLE CONSTRAINT "FK_DEPTNO""
IMP-00003: 遇到 ORACLE 错误 2298
ORA-02298: 无法验证 (SCOTT.FK_DEPTNO) - 未找到父项关键字
成功终止导入, 但出现警告。
可以看到emp表被成功建立,并放入了数据,但是在启用约束的时候出现了错误,原因是现在dept表为空,而emp表和dept表之间又有主外键关系这样emp表的deptno列的数据都是违背外键约束的,这样添加外间的操作自然会失败。
但从这个例子我们可以看到,导入一张表的顺序是:
建立表--> 插入记录--> 添加约束
我们忽略了创建错误。
1.1,  之代码
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>imp

Import: Release 10.2.0.3.0 - Production on 星期六 1月 21 09:30:06 2017

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

用户名: scott/tiger@orcl

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options

导入文件: EXPDAT.DMP> c:\mytable.dmp

输入插入缓冲区大小 (最小为 8192) 30720>

经由常规路径由 EXPORT:V10.02.01 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
只列出导入文件的内容 (yes/no): no >

由于对象已存在, 忽略创建错误 (yes/no): no > yes

导入权限 (yes/no): yes >

导入表数据 (yes/no): yes >

导入整个导出文件 (yes/no): no >
用户名: scott

输入表 (T) 或分区 (T: P) 名称。空列表表示用户的所有表
输入表 (T) 或分区 (T: P) 的名称或 。如果完成:  emp

输入表 (T) 或分区 (T: P) 的名称或 。如果完成:

. 正在将 SCOTT 的对象导入到 SCOTT
. 正在将 SCOTT 的对象导入到 SCOTT
. . 正在导入表                           "EMP"导入了          14 行
即将启用约束条件...
IMP-00017: 由于 ORACLE 错误 2298, 以下语句失败:
 "ALTER TABLE "EMP" ENABLE CONSTRAINT "FK_DEPTNO""
IMP-00003: 遇到 ORACLE 错误 2298
ORA-02298: 无法验证 (SCOTT.FK_DEPTNO) - 未找到父项关键字
成功终止导入, 但出现警告。

C:\Users\Administrator>
View Code

相关文章:

  • 2021-12-30
  • 2022-01-11
  • 2022-12-23
  • 2021-07-09
  • 2022-01-13
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-19
  • 2021-12-04
  • 2021-05-13
  • 2021-09-17
  • 2022-12-23
相关资源
相似解决方案