Oracle 遇到的问题:IMP-00041: 警告: 创建的对象带有编译警告解决办法
出现IMP-00041: 警告: 创建的对象带有编译警告:
以后再做数据迁移的时候需要额外注意,尤其用户中有视图或者触发器对象的时候。
用户的环境是这样的,在库里有三个oracle的用户,其中一个用户中有几张视图是引用其他用户的,所以
在数据导入的时候,需要导入”独立性最好”的用户对象,什么是”独立性最好”?大概的意思是自相关,自己只和自己
打交道没有引用其他用户的对象。如果顺序错了,自然会出现”IMP-00041: 警告: 创建的对象带有编译警告”类似的错误,
可能是数据导入的过程中,用户有视图对象,而视图需要引用的对象在其他用户里。
除此之外,如果是夸用户的对象,还需要额外注意权限的问题。及时用户具备DBA的角色,在视图中,仍需显示的
“grant select.. on…”来给用户授权,否则也会出现imp-00041,也许在你recompile之后,仍然无法解决,那么,那么
drop掉视图,重新创建吧。。
出现IMP-00041: 警告: 创建的对象带有编译警告:
1 "CREATE FORCE VIEW "ADMIN"."P_VIEW_ORDERITEMP" ("I" 2 "TEMCODE","ITEMTYPE","ORDERITEMCODE","ITEMFLG","PREORDERITEMCODE") AS " 3 "select BSS_ORDERITEM.Itemcode,BSS_ORDERITEM.Itemtype,BSS_ORDERITEM.Orderite" 4 "mcode,BSS_ORDERITEM.ITEMFLG,p_view_param.get_param() Preorderitemcode from " 5 "BSS_ORDERITEM" 6 "START WITH BSS_ORDERITEM.Orderitemcode =(select BSS_ORDERITEM.Orderitemcode" 7 " from BSS_ORDERITEM" 8 "where BSS_ORDERITEM.Orderitemcode <> p_view_param.get_param() and BSS_" 9 "ORDERITEM.Preorderitemcode= p_view_param.get_param() )" 10 "CONNECT BY prior BSS_ORDERITEM.Orderitemcode =BSS_ORDERITEM.Preorderitemcod" 11 "e" 12 "" 13 "union all" 14 "select BSS_ORDERITEM.Itemcode,BSS_ORDERITEM.Itemtype,BSS_ORDERITEM.Orderite" 15 "mcode,BSS_ORDERITEM.ITEMFLG,to_char(BSS_ORDERITEM.Preorderitemcode) from BS" 16 "S_ORDERITEM" 17 "left join BSS_ORDERPAY on BSS_ORDERITEM.Orderitemcode = BSS_ORDERPAY.Order" 18 "itemcode" 19 "where BSS_ORDERITEM.Orderitemcode=p_view_param.get_param()"
正在创建模型,此时不可使用上下文“的解决办法