1、重复导入已存在的数据库,有以下两种导入方法IMP和IMPDP。
2、IMP导入的时候 :如果已经存在此表, 会告诉你无法创建此表,因为表已经存在。同时使用参数 full=y ignore=y 那就是全部导入,把dmp里的所有数据插入到表里面。
3、数据备份,使用命令:exp user/user file=d:\user.dmp full=y恢复时,使用命令:imp user/user FILE=d:\user.dmp fromuser=user touser=user full=y ignore=y。
4、IMPDP导入的时候 :用参数table_exists_action=replace 进行删除后覆盖table_exists_action选项。
5、数据备份,使用命令:expdp user/user directory=dump_dir dumpfile=schema.dmp
logfile=schema.log schemas=user job_name=exp_user_schema恢复时。
oracle中导入数据不存在覆盖的问题,如果有唯一约束条件,那么导入重复的记录会直接报错,如果没有唯一约束条件,那么导入只会在原表数据基础上追加;不存在覆盖的问题。你截图中的是导入的指导界面,指定导入的字段对应关系,这个设置跟我上面说的原则不冲突,所以说要么报错要么追加,不会覆盖。
还有下面你说的问题,如果你的表是空,没有数据,那哪来的覆盖一说呢?
C:\Documentsand
Settings\Administrator>exp
test1
rows=y
file=d:/oracle.dmp
tables=t1
Export:
Release
10.2.0.1.0
-
Production
on
星期四
5月
20
07:57:10
2010
Copyright
(c)
1982,
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
已导出
ZHS16GBK
字符集和
AL16UTF16
NCHAR
字符集
即将导出指定的表通过常规路径...
.
.
正在导出表
T1导出了
2
行
成功终止导出,
没有出现警告。
C:\Documents
and
Settings\Administrator>imp
test1
rows=y
file=d:/oracle.dmp
Import:
Release
10.2.0.1.0
-
Production
on
星期四
5月
20
07:58:56
2010
Copyright
(c)
1982,
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
经由常规路径由
EXPORT:V10.02.01
创建的导出文件
已经完成
ZHS16GBK
字符集和
AL16UTF16
NCHAR
字符集中的导入
.
正在将
TEST1
的对象导入到
TEST1
.
正在将
TEST1
的对象导入到
TEST1
IMP-00015:
由于对象已存在,
下列语句失败:
"CREATE
TABLE
"T1"
("A"
VARCHAR2(20),
"B"
NUMBER,
"C"
NUMBER(4,
2))
PCTFREE"
"
10
PCTUSED
40
INITRANS
1
MAXTRANS
255
STORAGE(INITIAL
65536
FREELISTS
1
FR"
"EELIST
GROUPS
1
BUFFER_POOL
DEFAULT)
LOGGING
NOCOMPRESS"
成功终止导入,
但出现警告。
destroy参数,用于覆盖表空间中的数据文件。
我刚才是想覆盖t1表,而不是数据文件。所以destory没有效果
估计你的也是类似的情况。
[TEST1@orcl#20-5月
-10]
SQL>drop
table
t1
purge
表已删除。
经由常规路径由
EXPORT:V10.02.01
创建的导出文件
已经完成
ZHS16GBK
字符集和
AL16UTF16
NCHAR
字符集中的导入
.
正在将
TEST1
的对象导入到
TEST1
.
正在将
TEST1
的对象导入到
TEST1
.
.
正在导入表
"T1"导入了
2
行
成功终止导入,
没有出现警告。
先删除
再导入就能成功
那么
我只删除其中一行数据呢?
[TEST1@orcl#20-5月
-10]
SQL>delete
from
t1
where
b=1
已删除
1
行。
[TEST1@orcl#20-5月
-10]
SQL>commit
提交完成。
。。。。。成功终止导入,
但出现警告。
也不行,create
table
的时候就失败了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)