重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7651|回复: 0
打印 上一主题 下一主题

[工具] impdp导入提报ORA-39151的是提示,说明表已存在,将跳过所有相关元数据和数据的问题

[复制链接]
跳转到指定楼层
楼主
发表于 2020-3-15 14:59:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当使用IMPDP完成数据库导入时,如因此前导入失败,重新导入或其他情况下,遇到提示:ORA-39151: 表 “**”.“****” 已存在。由于跳过了 table_exists_action, 将跳过所有相关元数据和数据。虽然最后在并无重大的错误下完成导入任务,但实际上我们去查询表时,会发现并没有数据导入进来,那导入也说明是失败的。那是什么原因呢?其实是导入的命令中,有一个table_exists_action参数,虽然我们在执行导入命令时,并没有输这个参数,而且使用了full=y,但实际上这个参数默认是存在的,虽然我们在执行导入时,并未设置,但在进行导入任务时,仍旧会按这个参数默认值执行。而table_exists_action参数有哪些值呢?
Oracle对table_exists_action提供给我们四个值,同样也是四种处理方式:
a.忽略(SKIPtable_exists_action的默认值);
b.在原有数据基础上继续增加(APPEND);
c.先DROP表,然后创建表,最后完成数据插入(REPLACE);
d.先将表中的数据TRUNCATE,再完成数据插入(TRUNCATE)。
按照前面的要求进行导入,存在有些表已存在的情况,那可以在导入命令后面追加一个table_exists_action=replace参数设置,然后再执行导入任务。(注:在导入某一用户下所有对象时可以使用。如果是整库导入,那该参数值不建议使用这个选择,因为会将数据库的系统表也会删除重新,而系统表的话,有些表是需要特定的权限才能创建的
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-29 23:58 , Processed in 0.093012 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表