出现IMP-00041: 警告: 创建的对象带有编译警告:
以后再做数据迁移的时候需要额外注意,尤其用户中有视图或者触发器对象的时候。
用户的环境是这样的,在库里有三个oracle的用户,其中一个用户中有几张视图是引用其他用户的,所以
在数据导入的时候,需要导入”独立性最好”的用户对象,什么是”独立性最好”?大概的意思是自相关,自己只和自己
打交道没有引用其他用户的对象。如果顺序错了,自然会出现”IMP-00041: 警告: 创建的对象带有编译警告”类似的错误,
可能是数据导入的过程中,用户有视图对象,而视图需要引用的对象在其他用户里。
除此之外,如果是夸用户的对象,还需要额外注意权限的问题。及时用户具备DBA的角色,在视图中,仍需显示的
“grant select.. on…”来给用户授权,否则也会出现imp-00041,也许在你recompile之后,仍然无法解决,那么,那么
drop掉视图,重新创建吧。。
IMP-00041: 警告: 创建的对象带有编译警告
"CREATE FORCE VIEW "CYOL"."MEMBERINFO" ("NAME","S"
"EX","PEN_NAME","IDCARD","PWD","MAIL","EDUCATION","CAREER","CITY","COMPANY","
""ADDRESS","ZIP","PHONE","LEAVE_WORD","MUMBER_LEVEL","IP","DATE_TIME" AS "
"select mbr_name,mbr_gender,mbr_uname,"
" mbr_personal_id,mbr_pwd,mbr_email,mbr_education,mbr_job,mbr_city,"
" mbr_company,mbr_address,mbr_zip,mbr_phone,mbr_desc,mbr_point_balance,"
" mbr_ip,mbr_reg_date from members"
准备启用约束条件...
成功终止导入,但出现警告。
C:\>;imp
Import: Release 10.2.3.0 - Production on 星期二 1月 18 09:46:17 2010
(c) Copyright 2000 Oracle Corporation. All rights reserved.
用户名: system
口令:
连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 10.2.3.0 - Production
导入文件: EXPDAT.DMP>; 2070117.dmp
输入插入缓冲区大小(最小为 8192 ) 30720>;
经由常规路径导出由EXPORT:V08.01.06创建的文件
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
只列出导入文件的内容(yes/no):no>;
由于对象已存在, 忽略创建错误(yes/no):no>;
导入权限(yes/no):yes>;
导入表数据(yes/no):yes>;
导入整个导出文件(yes/no):no>; y
IMP-00001: 请按yes,no,RETURN 或 '.' 退出
导入整个导出文件(yes/no):no>;
用户名: cyol
输入表 (T) 或分区 (T: P) 名称。空列表表示用户的所有表
输入表 (T) 或分区 (T: P) 的名称或。如果完成:
在导入的目标系统里需要先建好触发器. 然后就OK了
1. 导入命令里加上 ignore=y
2. 导入完成后,在pl/sql developer 里选中出现警告的触发器,右键选择recompiled 即可