本帖最后由 azhenw 于 2010-04-13 17:03:52 编辑

解决方案 »

  1.   

    1、系统中貌似没见过smp开头的包;
    2、导入时使用ignore=y试试;
      

  2.   

    导出时的log 日志里是怎么说的? 
    还有就是是之前imp 的时候成功没有, 一般imp 的时候都会有对象失效的问题, 直接compile 一下就正常了。 ------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    DBA1 群:62697716(满); DBA2 群:62697977
      

  3.   

    给个备份日志看看,导入DMP有没有错?
      

  4.   

        2楼说的重新编译我试了,不行,现在想来可能是由于之前删除了一些存储过程,导致了这些包和包体无法编译通过。现在我正准备把一些常用表备份一下,然后将这些非我族类的包和包体全部删掉。  
        像我在备注里说的,当时在以前的服务器上我使用“整个数据库模式”对数据进行了备份,之后恢复到了我现在用的机器上,可能就把系统的一些东西给带过来了。
        前段时间,我尝试着把不是我自己创建的表、过程都删了,再使用exp进行备份就一直报错了。
        以下是我尝试导出的命令行:
        exp userid=TEST/***@*** owner=TEST file=e:\3
    下面是导出结果:
    已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集即将导出指定的用户...
    . 正在导出 pre-schema 过程对象和操作
    EXP-00008: 遇到 ORACLE 错误 4068
    ORA-04068: 已丢弃程序包  的当前状态
    ORA-04063: package body "SYS.DBMS_REFRESH_EXP_LWM" 有错误
    ORA-06508: PL/SQL: 无法在调用之前找到程序单元
    ORA-06512: 在line 1
    EXP-00083: 调用 SYS.DBMS_REFRESH_EXP_LWM.schema_info_exp 时出现前一个问题
    EXP-00008: 遇到 ORACLE 错误 4068
    ORA-04068: 已丢弃程序包  的当前状态
    ORA-04063: package body "SYS.DBMS_REPCAT_RGT_EXP" 有错误
    ORA-06508: PL/SQL: 无法在调用之前找到程序单元
    ORA-06512: 在line 1
    EXP-00083: 调用 SYS.DBMS_REPCAT_RGT_EXP.schema_info_exp 时出现前一个问题
    EXP-00008: 遇到 ORACLE 错误 4068
    ORA-04068: 已丢弃程序包  的当前状态
    ORA-04063: package body "SYS.DBMS_LOGREP_EXP" 有错误
    ORA-06508: PL/SQL: 无法在调用之前找到程序单元
    ORA-06512: 在line 1
    EXP-00083: 调用 SYS.DBMS_LOGREP_EXP.schema_info_exp 时出现前一个问题
    . 正在导出用户 TEST 的外部函数库名称
    . 导出 PUBLIC 类型同义词
    . 导出私有类型同义词
    . 正在导出用户 TEST 的对象类型定义
    即将导出 TEST 的对象 ...
    . 正在导出数据库链接
    . 正在导出序号
    . 正在导出群集定义
    EXP-00056: 遇到 ORACLE 错误 19206
    ORA-19206: 用于查询或 REF CURSOR 参数的值无效
    ORA-06512: 在"SYS.DBMS_XMLGEN", line 83
    ORA-06512: 在"SYS.DBMS_METADATA", line 345
    ORA-06512: 在"SYS.DBMS_METADATA", line 410
    ORA-06512: 在"SYS.DBMS_METADATA", line 449
    ORA-06512: 在"SYS.DBMS_METADATA", line 1156
    ORA-06512: 在"SYS.DBMS_METADATA", line 1141
    ORA-06512: 在line 1
    EXP-00000: 导出终止失败
      

  5.   


    Microsoft Windows XP [版本 5.1.2600]
    (C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\Administrator>exp test/test@liglExport: Release 9.2.0.1.0 - Production on 星期六 11月 7 21:45:01 2009Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
    连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.1.0 - Production
    输入数组提取缓冲区大小: 4096 > 导出文件: EXPDAT.DMP> e:\test.dmp(1)E(完整的数据库),(2)U(用户) 或 (3)T(表): (2)U >导出权限 (yes/no): yes >导出表数据 (yes/no): yes >压缩区 (yes/no): yes >已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集即将导出指定的用户...
    要导出的用户: (RETURN 以退出) > test要导出的用户: (RETURN 以退出) >. 正在导出 pre-schema 过程对象和操作
    . 正在导出用户 TEST 的外部函数库名称
    . 导出 PUBLIC 类型同义词
    . 导出私有类型同义词
    . 正在导出用户 TEST 的对象类型定义
    即将导出 TEST 的对象 ...
    . 正在导出数据库链接
    . 正在导出序号
    . 正在导出群集定义
    . 即将导出 TEST 的表通过常规路径 ...
    . . 正在导出表                            TEST          2 行被导出
    . 正在导出同义词
    . 正在导出视图
    . 正在导出存储的过程
    . 正在导出运算符
    . 正在导出引用完整性约束条件
    . 正在导出触发器
    . 正在导出索引类型
    . 正在导出位图, 功能性索引和可扩展索引
    . 正在导出后期表活动
    . 正在导出实体化视图
    . 正在导出快照日志
    . 正在导出作业队列
    . 正在导出刷新组和子组
    . 正在导出维
    . 正在导出 post-schema 过程对象和操作
    . 正在导出统计
    在没有警告的情况下成功终止导出。C:\Documents and Settings\Administrator>
    照我的做法 你就可以陈功哦 !!!!!!!!!!
      

  6.   

    估计是DB版本和dmp文件不一致
      

  7.   

    今天再试的时候,感觉大概找到原因了——当时备份的时候使用dba账户备份了整个数据库,后来将数据恢复到了普通用户(后来发现恢复后也具有dba权限)。可能所有的根源都在于我拿了一份dba用户的备份数据尝试恢复到普通用户,后来发现回复后多了许多系统表、存储过程等,我就开始删,删到最后就乱了。
        可能是这个原因,下一步就开始找对策了。实在不行就重新建库了。