我有两张表,相同的结构如下:create table WEATHER.YUN_CHENG
(
  ID          VARCHAR2(48) not null,
  BIRTHDAY    DATE not null,
  DDATE       DATE,
  CONTENTS    VARCHAR2(4000),
  CREATE_TIME TIMESTAMP(6) default sysdate not null
)
把导出来到dmp,导入到另一张表里就报错。
说是:ORA-01843 无效的月份。然后查询了select sysdate from dual;结果都是26-7月-11怎么能让数据导进去?

解决方案 »

  1.   

    先把目标表CREATE_TIME 字段sysdate默认值去掉  导入后 在添加上 
      

  2.   

    两个表在不同的数据库  数据库默认日期格式不一致 查询源库和目标库日期默认格式 通过执行alter   session   set   nls_date_format= 'yyyy-mm-dd '  在此Session会话中保证目标库日期格式与源库一致有效 
      

  3.   


    查询源库和目标库日期默认格式,这个怎么查询?修改session日期格式的话,当session结束后,是不是设置就还原了?
      

  4.   

    查一下两个数据库导出环境的$NLS_LANG环境变量,设为和导出源环境一致就没问题了,导出完成之后再改回去
      

  5.   

    查一下两个数据库导出环境的$NLS_LANG环境变量,设为和导出源环境一致就没问题了,导出完成之后再改回去
    plsql可以查看
      

  6.   

    我把两个表sysdate都删掉了,导入还是报错 ORA-01843
      

  7.   


    两个数据库的NLS_LANG都为 : SIMPLIFIED CHINESE_CHINA.ZHS16GBK ,是相同的的啊
      

  8.   

    你检查了你其他date类型的字段里面的值是否有不完整的日期值噢?
    不一定是create_time的问题,我是觉得你肯定有日期字段的值不正确。
      

  9.   

    通过select sysdate from dual  看一下结果是否一致 如果格式一致那就有可能是数据的问题了 用单条数据测试一下 看是否能添加进去 或者在目标数据库添加源数据库的DBLINK连接  直接通过  insert into 目标表  select * from 源表 实现