我使用exp命令对oracle的数据库表进行导出,但导出的dmp文件中少了部分默认值和非空约束(不是全部,一个表里3个字段有非空约束,导出来两个,有一个导不出来)求指点呀!!
1、执行命令:exp userid=$USER1 tables=uploadlog file=Image.dmp rows=n triggers=n grants=n indexes=n constraints=n 
2、对比原数据库结构和导出的dmp文件结构:
显然,第二个图片中的not null没有了,同样另一个表的字段默认值也是这个情况,导出后就没有了!

解决方案 »

  1.   

    你自己设了constraints=n 啊 ,约束不导,not null是非空约束
      

  2.   

    可是您看图1,有3个not null,但只有第二个not null没有导出来,第一个和第三个导出来了,我加这个constraints=n主要是为了去掉主键约束!
      

  3.   

    我把这句去掉了,他只是加上了pk,并没有加上中间的那个not null
      

  4.   


    那就比较奇怪了,你测试下把pid改成pid2试试?难道pid是关键字冲突?但也不是啊。
      

  5.   


    那就比较奇怪了,你测试下把pid改成pid2试试?难道pid是关键字冲突?但也不是啊。哎,服了,试了好多方法都不行!
      

  6.   

    pid列,有外键约束吗?你把最开始的建表语句都贴出来,包括主键,外键等。另外说下你的数据库版本,包括小版本!
      

  7.   

    1、exp contraints选项,确实会限制约束的导出,主键,外键,not null,check都算。
    2、此外,用相同的工具或方式对比两边的DDL语句。祝wmxcn2000大神及其他朋友,元旦节日快乐!