导出语句如下:
exp user/pass@test full=y file=d:\full.dmp log=d:\full.log导入命令为:
imp user/pass@test fromuser=user touser=user file=d:\full.dmp导入顺利终止.
查看表格数量,发现比原数据库少了79个表.
仔细检查发现,导进去的表格都是最近有更新的表,没有更新的表都没有导进来.
请各位大哥指点.Oracle

解决方案 »

  1.   

    好像之前有人遇到过这个问题,据说是个Bug ,处理方法记不太清楚了
      

  2.   

    你的exp,imp都没有报错?你的导入和导出语句意义不完全相同吧导出是全部的表,
    导入只是一个用户的表
      

  3.   

    1.问一下导入与导出时所用的用户一样吗。用对应的imp与exp权限一样吗?
    2.你要导入的数据库中有数据吗?若有部分数据相同,而你又没加ignore=y。也会出现你所说的现象。
      

  4.   

    谢谢各位,问题已经解决了。
    这个问题分为两种情况,一种是在数据库没有导入资料时和导入资料后。
    在导入资料前,也就是在创建TABLE表使用以下命令修改数据库参数便可。
    SQL>ALTER SYSTEM SET DEFERRED_SEGMENT_CREATION=FALSE SCOPE=BOTH;
    如果是已经创建了表格,那就用下面的几条语句。
    首先要找出为空的表。
    SQL>SELECT TABLE_NAME FROM ALL_TABLES WHERE TABLE_NAME NOT IN (SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER=USER1,USER2... AND NUM_ROWS>0) WHERE OWNER=USER1,USER2.......
    SQL>ALTER SYSTEM SET DEFERRED_SEGMENT_CREATION=FALSE SCOPE=BOTH;
    SQL>ALTER TABLE TABLENAME ALLOCATE EXTENT;
    ....
      

  5.   

    oracle11G 默认空表是不导出的,还有11G的默认密码有效时间是3个月,还有大小写敏感。
    这些网上都可以查询到处理办法。