我原有系统平台是:window2003 32位+oracle9.0 32位版本,现exp导出dmp文件后,想倒入到linux 64位 oracle10。2.0.4 64位平台上,但倒了几次老提示以下错误。请高手协助,谢谢。IMP-00041: 警告:创建的对象带有编译警告
 "CREATE FORCE VIEW "ANYT"."DOMAIN_ADDRESS_VIEW"                       ("
 ""ADDRESS_ID","NAME","SIMPLE_CODE","PARENT_ADDR","CSTNAME") AS "
 "SELECT ADDRESS_ID,DOMAIN_ADDRESS.NAME,SIMPLE_CODE,PARENT_ADDR ,CST_CUSTOMER"
 ".NAME"
 "    FROM DOMAIN_ADDRESS , CST_CUSTOMER WHERE CST_CUSTOMER.ADDR_ID = DOMAIN_"
 "ADDRESS.ADDRESS_ID   ORDER BY SIMPLE_CODE "
IMP-00017: 由于 ORACLE 错误 23308, 以下语句失败:
 "BEGIN   DBMS_DDL.SET_TRIGGER_FIRING_PROPERTY('ANYT', 'Tr_I_NOTIFY_SMS_"
 "FINISHED_ID', FALSE); END;"
IMP-00003: 遇到 ORACLE 错误 23308
ORA-23308: 对象 ANYT.TR_I_NOTIFY_SMS_FINISHED_ID 不存在或无效
ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: 在 "SYS.DBMS_DDL_INTERNAL", line 41
ORA-06512: 在 "SYS.DBMS_DDL", line 335
ORA-06512: 在 line 1

解决方案 »

  1.   

    TR_I_NOTIFY_SMS_FINISHED_ID 这个触发器,你EXP时使用的USER有权限访问吗?
      

  2.   

    把EXP,IMP命令的细节都透露一下。EXP的用户,与IMP的用户名,是同一个吗?
      

  3.   

    EXP命令:  exp any/p1234@an12 file=a.dmp owner=any
    IMP命令:imp any/p1234 file=/root/a.dmp fromuser=any touser=any ignore=y constraints=n
      

  4.   

    在10g上ANYT用户权限和9i上ANYT用户的权限配置是一样的
      

  5.   

    角色 
     
     
     
    角色 管理选项 默认值 
    CONNECT N Y 
    DBA N Y 
    RESOURCE N Y 
     
     
     
     
    系统权限:系统权限 管理选项 
    UNLIMITED TABLESPACE N 
      

  6.   

    IMP命令:imp any/p1234 file=/root/a.dmp fromuser=any touser=any ignore=y constraints=n会不会这个参数的原因,去掉看看。
      

  7.   

    你的 fromuser=any touser=any   这两个any ,导入和导出的用户一样,不会报错吗?
      

  8.   

    这个参数去掉也报错,报错如下:
    IMP-00041: 警告:创建的对象带有编译警告
     "CREATE FORCE VIEW "ANY"."DOMAIN_ADDRESS_VIEW"                       ("
     ""ADDRESS_ID","NAME","SIMPLE_CODE","PARENT_ADDR","CSTNAME") AS "
     "SELECT ADDRESS_ID,DOMAIN_ADDRESS.NAME,SIMPLE_CODE,PARENT_ADDR ,CST_CUSTOMER"
     ".NAME"
     "    FROM DOMAIN_ADDRESS , CST_CUSTOMER WHERE CST_CUSTOMER.ADDR_ID = DOMAIN_"
     "ADDRESS.ADDRESS_ID   ORDER BY SIMPLE_CODE "
    IMP-00017: 由于 ORACLE 错误 2270, 以下语句失败:
     "ALTER TABLE "SALE_CONSUMER" ADD CONSTRAINT "FK_CONSUMER_CUSTOMER" FOREIGN K"
     "EY ("CUSTOMER_ID") REFERENCES "CST_CUSTOMER" ("CUSTOMER_ID") ENABLE NOVALID"
     "ATE"
    IMP-00003: 遇到 ORACLE 错误 2270
    ORA-02270: 此列列表的唯一关键字或主键不匹配
    IMP-00017: 由于 ORACLE 错误 2270, 以下语句失败:
     "ALTER TABLE "SALE_ACCOUNT" ADD CONSTRAINT "FK_SALE_ACCOUNT001" FOREIGN KEY "
     "("CUSTOMER_ID") REFERENCES "CST_CUSTOMER" ("CUSTOMER_ID") ENABLE NOVALIDATE"
    IMP-00003: 遇到 ORACLE 错误 2270
    ORA-02270: 此列列表的唯一关键字或主键不匹配
    IMP-00017: 由于 ORACLE 错误 2270, 以下语句失败:
     "ALTER TABLE "SALE_GROUP_ORDER" ADD CONSTRAINT "FK_SALE_GROUP_CUSTOMER" FORE"
     "IGN KEY ("CUSTOMER_ID") REFERENCES "CST_CUSTOMER" ("CUSTOMER_ID") ENABLE NO"
     "VALIDATE"
    IMP-00003: 遇到 ORACLE 错误 2270
    ORA-02270: 此列列表的唯一关键字或主键不匹配
    IMP-00017: 由于 ORACLE 错误 2270, 以下语句失败:
     "ALTER TABLE "SALE_ORDER" ADD CONSTRAINT "FK_SALE_ORDER_CUSTOMER" FOREIGN KE"
     "Y ("CUSTOMER_ID") REFERENCES "CST_CUSTOMER" ("CUSTOMER_ID") ENABLE NOVALIDA"
     "TE"
    IMP-00003: 遇到 ORACLE 错误 2270
    ORA-02270: 此列列表的唯一关键字或主键不匹配
    IMP-00017: 由于 ORACLE 错误 2270, 以下语句失败:
     "ALTER TABLE "SALE_RECEIVABLE" ADD CONSTRAINT "FK_SALE_REC_CUSTOMER" FOREIGN"
     " KEY ("CUSTOMER_ID") REFERENCES "CST_CUSTOMER" ("CUSTOMER_ID") ENABLE NOVAL"
     "IDATE"
    IMP-00003: 遇到 ORACLE 错误 2270
    ORA-02270: 此列列表的唯一关键字或主键不匹配
    IMP-00017: 由于 ORACLE 错误 2270, 以下语句失败:
     "BEGIN   DBMS_DDL.SET_TRIGGER_FIRING_PROPERTY('ANY', 'Tr_I_NOTIFY_SMS_"
     "FINISHED_ID', FALSE); END;"
    IMP-00003: 遇到 ORACLE 错误 23308
    ORA-23308: 对象 ANY.TR_I_NOTIFY_SMS_FINISHED_ID 不存在或无效
    ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 95
    ORA-06512: 在 "SYS.DBMS_DDL_INTERNAL", line 41
    ORA-06512: 在 "SYS.DBMS_DDL", line 335
    ORA-06512: 在 line 1
    即将启用约束条件...
    IMP-00017: 由于 ORACLE 错误 2298, 以下语句失败:
     "ALTER TABLE "SALE_CONSUMER" ENABLE CONSTRAINT "FK_GROUP_ID""
    IMP-00003: 遇到 ORACLE 错误 2298
    ORA-02298: 无法验证 (ANY.FK_GROUP_ID) - 未找到父项关键字
    IMP-00017: 由于 ORACLE 错误 2298, 以下语句失败:
     "ALTER TABLE "SALE_GROUP_ORDER_HIS" ENABLE CONSTRAINT "FK_SALE_GROUP_HIS_PRO"
     "DUCT""
    IMP-00003: 遇到 ORACLE 错误 2298
    ORA-02298: 无法验证 (ANY.FK_SALE_GROUP_HIS_PRODUCT) - 未找到父项关键字
    IMP-00017: 由于 ORACLE 错误 2298, 以下语句失败:
     "ALTER TABLE "SALE_GROUP_ORDER" ENABLE CONSTRAINT "FK_SALE_GROUP_PRODUCT""
    IMP-00003: 遇到 ORACLE 错误 2298
    ORA-02298: 无法验证 (ANY.FK_SALE_GROUP_PRODUCT) - 未找到父项关键字
    IMP-00017: 由于 ORACLE 错误 2298, 以下语句失败:
     "ALTER TABLE "SUBORDER_GROUP" ENABLE CONSTRAINT "SUBORDER_GROU_FK21080798062"
     "384""
    IMP-00003: 遇到 ORACLE 错误 2298
    ORA-02298: 无法验证 (ANY.SUBORDER_GROU_FK21080798062384) - 未找到父项关键字
    成功终止导入,但出现警告
      

  9.   


    外键出错了。导入之后(即使导入时报了错),有CST_CUSTOMER这个表么?CST_CUSTOMER这个表有CUSTOMER_ID这个字段么?
      

  10.   

    最主要是这个问题IMP-00041: 警告:创建的对象带有编译警告
     "CREATE FORCE VIEW "ANYT"."DOMAIN_ADDRESS_VIEW" ("
     ""ADDRESS_ID","NAME","SIMPLE_CODE","PARENT_ADDR","CSTNAME") AS "
     "SELECT ADDRESS_ID,DOMAIN_ADDRESS.NAME,SIMPLE_CODE,PARENT_ADDR ,CST_CUSTOMER"
     ".NAME"
     " FROM DOMAIN_ADDRESS , CST_CUSTOMER WHERE CST_CUSTOMER.ADDR_ID = DOMAIN_"
     "ADDRESS.ADDRESS_ID ORDER BY SIMPLE_CODE "
    IMP-00017: 由于 ORACLE 错误 23308, 以下语句失败:
     "BEGIN DBMS_DDL.SET_TRIGGER_FIRING_PROPERTY('ANYT', 'Tr_I_NOTIFY_SMS_"
     "FINISHED_ID', FALSE); END;"
    IMP-00003: 遇到 ORACLE 错误 23308
    ORA-23308: 对象 ANYT.TR_I_NOTIFY_SMS_FINISHED_ID 不存在或无效
    ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 95
    ORA-06512: 在 "SYS.DBMS_DDL_INTERNAL", line 41
    ORA-06512: 在 "SYS.DBMS_DDL", line 335
    ORA-06512: 在 line 1
      

  11.   

    我也不知道是啥原因了,试试换个用户用sysdba创建一个新用户sql>create user xxx identified by xxx;
    sql>grant connect, resource, dba to xxx;然后再执行:
    imp xxx/xxx file=/root/a.dmp fromuser=any touser=xxx ignore=y
      

  12.   

    假如 16 楼的回答,仍然没有解决的话,可能是BUG了不过这个BUG好像在你的9I版本已经解决了Bug 2067904 Release: Oracle8i (8.1.7.x) and 9.0.1.2 and below
    Problem: Trigger-name causes call to DBMS_DDL.SET_TRIGGER_FIRING_PROPERTY to fail during Import (IMP-17 IMP-3 ORA-931 ORA-23308 ORA-6512).
    Solution: in Oracle9iR1 with patchset 9.0.1.3
    Workaround: yes, seeNote 239821.1"ORA-931 or ORA-23308 in SET_TRIGGER_FIRING_PROPERTY on Import of Trigger in 8.1.7.x and 9.0.1.x"Note 239821.1"ORA-931 or ORA-23308 in SET_TRIGGER_FIRING_PROPERTY on Import of Trigger in 8.1.7.x and 9.0.1.x"
      

  13.   

    还可能是:TR_I_NOTIFY_SMS_FINISHED_ID这个触发器,在源库上有SCHEMA比如, 原代码中是:
    create or replace ANYT.TR_I_NOTIFY_SMS_FINISHED_ID