imp-00017 oracle2298,急,imp怪異問題,請高手協助

文章详细描述了一位用户尝试将从Windows平台导出的Oracle 9.0 dmp文件迁移到Linux 64位Oracle 10.2.0.4时遇到的问题,包括编译警告、触发器错误和外键约束冲突。作者列举了多个可能的解决方案,如权限检查、用户设置、参数调整等,寻求帮助解决导入过程中的ORACLE错误。

我原有系統平台是: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

19 个解决方案

#1

TR_I_NOTIFY_SMS_FINISHED_ID 這個觸發器,你EXP時使用的USER有權限訪問嗎?

#2

有權限的

#3

把EXP,IMP命令的細節都透露一下。

EXP的用戶,與IMP的用戶名,是同一個嗎?

#4

請檢查ANYT用戶權限分配。

#5

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

#6

在10g上ANYT用戶權限和9i上ANYT用戶的權限配置是一樣的

#7

角色

角色 管理選項 默認值

CONNECT N Y

DBA N Y

RESOURCE N Y

系統權限:

系統權限 管理選項

UNLIMITED TABLESPACE N

#8

IMP命令:imp any/p1234 file=/root/a.dmp fromuser=any touser=any ignore=y

constraints=n

會不會這個參數的原因,去掉看看。

#9

關注,學習中....

#10

你的 fromuser=any touser=any   這兩個any ,導入和導出的用戶一樣,不會報錯嗎?

#11

這個參數去掉也報錯,報錯如下:

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) - 未找到父項關鍵字

成功終止導入,但出現警告

引用 8 樓 codearts 的回復:

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

會不會這個參數的原因,去掉看看。

#12

用戶是沒錯的

引用 10 樓 qq646748739 的回復:

你的 fromuser=any touser=any 這兩個any ,導入和導出的用戶一樣,不會報錯嗎?

#13

引用 11 樓 seani 的回復:

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: 此列列表的唯一關鍵字或主鍵不匹配

外鍵出錯了。

導入之后(即使導入時報了錯),有CST_CUSTOMER這個表么?CST_CUSTOMER這個表有CUSTOMER_ID這個字段么?

#14

引用 13 樓 codearts 的回復:

引用 11 樓 seani 的回復:

IMP-00017: 由於 ORACLE 錯誤 2270, 以下語句失敗:

"ALTER TABLE "SALE_ACCOUNT" ADD CONSTRAINT "FK_SALE_ACCOUNT001" FOREIGN KEY "

"("CUSTOMER_ID") REFERENCES "CST_CUSTOMER" ("CUSTOMER_ID") E……

有這個表,有這個字段的

#15

最主要是這個問題

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

#16

我也不知道是啥原因了,試試換個用戶

用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

#17

假如 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"

#18

還可能是:

TR_I_NOTIFY_SMS_FINISHED_ID這個觸發器,在源庫上有SCHEMA

比如, 原代碼中是:

create or replace

ANYT.TR_I_NOTIFY_SMS_FINISHED_ID

#19

還是沒解決,高手幫忙呀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值