ORACLE:IMP工具ignore=y的一个问题【THE QUESTION OF ORACLE IMP TOOL WHEN USE PARAMETER IGNORE=Y】

简介:
 ORACLE的EXP和IMP工具是大家会经常使用到的。在近期的工作中,发现IMP一个有意思的问题。
    我们有一个数据集中的业务,因为数据量不大且传输数据不是很多所以采用定时导出EXP和定时IMP的方法。因为数据是累加增长的所以在导入时我们使用了IMP的ignore=y的参数,即告诉IMP如果当前表存在就不创建表结构而直接导入新的数据。
    但是今天我在检查自动发送的错误日志时,发现这样的错误信息:
    
. . importing table          "XXXXX_tablename"
    IMP-00058: ORACLE error 904 encountered
    ORA-00904: "XXXX_column": invalid identifier
  
    我立刻意识到,前端应用的表结构发生了变化!但是我上个月的时候已经有规定,所有的上线系统后台数据库表结构修改都必须通知我呀。检查该表最后的修改日期:2007-6-8!怎么会这样?如果早在6月份就修改了结构为什么一直我的日志没有报错,单单在今天报错?
    询问研发,发现这张表的数据使用完成即删除,但是昨日因为临时需要而没有删除使用的数据。分析我们的操作流程:导出EXP操作发生在午夜12点,也就是说一般情况下,应该是一条数据都没有导出的,而因为昨日的特殊需要造成有数据被导出了!再分析以前正确的日志,终于发现问题:
    如果是没有数据被导出,在使用IMP导入并使用ignore=y参数时,ORACLE根本 不检查 要导入的数据结构和现存在数据库中表的结构是否相同。就直接显示如下信息;
   
  
. . importing table       "XXXXX_tablename"
                                                            0 rows imported
    只有真要有数据需要导入时,才会检查数据结构的一致性问题!
    所以就会差生一种总是可以成功导入的假象。

==========注

     文中显示的表名和字段名称,因为涉及到公司软件设计所以全部加以屏蔽。那会有人用这么傻的命名呀 -:)

本文转自Be the miracle!博客51CTO博客,原文链接http://blog.51cto.com/miracle/54463如需转载请自行联系原作者


Larry.Yue

相关文章
|
6月前
|
Oracle 关系型数据库 数据库连接
Windows系统安装配置Oracle数据库连接工具PLSQL
Windows系统安装配置Oracle数据库连接工具PLSQL
|
6月前
|
SQL Oracle 关系型数据库
Oracle连接工具PLSQL登录时提示初始化失败,无法锁定OCI.dll错误解决
Oracle连接工具PLSQL登录时提示初始化失败,无法锁定OCI.dll错误解决
326 0
|
6月前
|
SQL Oracle 关系型数据库
Oracle数据库连接工具PLSQL/Navicat安装与连接环境配置
Oracle数据库连接工具PLSQL/Navicat安装与连接环境配置
|
11月前
|
SQL 监控 Oracle
Oracle 性能监控统计工具 mystats脚本
看看这个工具的介绍就知道这个工具是很牛的,因为它是在两个牛人的工具是改进的,一出生就有贵族血统呀!
|
11月前
|
存储 SQL 负载均衡
Oracle实现高可用性的工具(负载均衡/故障切换)
Oracle实现高可用性的工具(负载均衡/故障切换)
146 0
|
Oracle 关系型数据库
Oracle自带adrci工具清理告警日志
Oracle自带adrci工具清理告警日志
515 0
Oracle自带adrci工具清理告警日志
|
SQL Oracle 关系型数据库
【Oracle】oracle sqluldr2工具使用方法
oracle数据导出工具sqluldr2可以将数据以csv、txt等格式导出,适用于大批量数据的导出,导出速度非常快。导出后可以使用oracle loader工具将数据导入。
847 0
|
Oracle 关系型数据库 数据库连接
Navicat 数据库连接工具连接oracle数据库提示cannot create oci handles问题解决方法
Navicat 数据库连接工具连接oracle数据库提示cannot create oci handles问题解决方法
1171 0
Navicat 数据库连接工具连接oracle数据库提示cannot create oci handles问题解决方法
|
SQL Oracle 关系型数据库
什么是Oracle的SQLT工具和SQLHC工具
什么是Oracle的SQLT工具和SQLHC工具
432 0
|
文字识别 Oracle 关系型数据库