oracle备份导入新建的数据库中报: IMP-00041: 警告: 创建的对象带有编译警告

2020-05-19 11:49发布

1.数据库版本是 11g2.导出无报错;用的exp3.导入语句是是:imp 1/2@orcl file=E:\3.DMP full=y ignore=y STATISTICS=NONE4.在网上搜了一...

1.数据库版本是 11g
2.导出无报错;用的exp
3.导入语句是是:imp 1/2@orcl file=E:\3.DMP full=y ignore=y STATISTICS=NONE
4.在网上搜了一下只有重建视图,但是需要重建的视图太多,麻烦问一下有么有更加简单的方法,我小白一名
5.报错信息是:

```IMP-00041: 警告: 创建的对象带有编译警告
"CREATE FORCE VIEW "P953"."PORTAL_CONTENT_UNION_VIEW" "
" ("SECTION_ID","REC_ID","TITLE","CONTENT","CREATE_DATE","IS_PUBLISH") A"
"S "
"SELECT A.SECTION_ID AS SECTION_ID, A.ARTICLE_ID AS REC_ID, A.ARTICLE_"
"TITLE AS TITLE, A.ARTICLE_CONTENT AS CONTENT, A.CREATE_DATE AS CREATE_DAT"
"E, A.IS_PUBLISH AS IS_PUBLISH FROM PORTAL_ARTICLE A UNION ALL SELECT P.S"
"ECTION_ID AS SECTION_ID, P.PHOTO_ID AS REC_ID, F.FILE_TITLE AS T"
"ITLE, F.MEMO AS CONTENT, F.UPLOAD_DATE AS CREATE_DATE, P.IS_PUBL"
"ISH AS IS_PUBLISH FROM PORTAL_PHOTO_FILE F JOIN PORTAL_PHOTO P ON F.PHOT"
"O_ID = P.PHOTO_ID UNION ALL SELECT M.SECTION_ID AS SECTION_ID, M.MEDIA_I"
"D AS REC_ID, F.FILE_TITLE AS TITLE, F.MEMO AS CONTENT, F.U"
"PLOAD_DATE AS CREATE_DATE, M.IS_PUBLISH AS IS_PUBLISH FROM PORTAL_MEDI"
"A_FILE F JOIN PORTAL_MEDIA M ON F.MEDIA_ID = M.MEDIA_ID"


3条回答
希希
2楼 · 2021-11-10 11:06

对于Oracle来说,IMP导入命令根据EXP导出方式采用的方式有所不同。
EXP以“全数据库方式”和“表空间方式”导出的数据库,IMP需要有DBA权限,并且导入数据库要有与导出数据库一致的表空间。
例:EXP system/口令@连接串... ...
      IMP system/口令@连接串... ...
EXP以“用户方式”和“表方式”导出的用户和表,IMP需要有被导入的用户与导出用户一致的权限,用户名可以不同,表名需要一致。
例:EXP scott/tiger@orcl ... ...
      IMP 用户名/kouling@orcl ... ...
有时出现警告信息也没有问题的。查看一下被安装数据是否正确。

征戰撩四汸
3楼 · 2021-11-24 18:59

出现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 即可


相关问题推荐

  • 回答 26

    运维和网管是有很大区别的,下面详细说说吧:网管:起点低,通俗,再加上网吧的兴起,让这个词,变成了众所周知。不过大家众所周知的,都认为是网吧的那种只会重启的网管,稍微有见识一点,会觉得是企业那种会修电脑的人。运维:起点稍高一点,不为大众所知。...

  • 回答 3
    已采纳

    需要的知识如下:数据库理论基础(基石)、编程基础以及编程思想、常用的数据结构、SQL 基础、SQL 性能优化、PL-SQL(了解)、T-SQL(了解)、MySQL Procedure(了解)、Linux 基础、Linux 高级知识、Shell 编程基础(重要,熟练使用)、Python 基础(可以熟...

  • 数据库运维怎么做?2020-04-24 10:26
    回答 4

    需要以下条件:(一) 具备以下任意两项通用技能:1、熟悉Linux或windows等操作系统的日常运维。2、熟悉Oracle或Mysql等数据库的日常运维。3、熟悉至少一种编程脚本(shell/Perl/python/ruby/awk/sed等)编程,具备日常运维能力。4、熟悉至少一种网络基础知识(...

  • 回答 3

    MySQL学习安装后,懂一些基本操作命令,然后就是学会SQL增删改查就算入门了,不是很难。

  • 回答 3

    《云安全原理与实践》、《云计算原理与实践》等9本,这是首套该行业内由产业界与教育界联合编撰的新型教材,为中国的云计算、人工智能等行业的长远发展奠定基础。这套教材自2015年底开始编写,由教育部高等教育计算机类专业教学指导委员会与阿里云联合成立云...

  • 回答 2
    已采纳

    x->y满射 ,相当于每个y都至少有一个x相对应,每个x指向一个y4元集到3元集满射,就是4元集中有两个元素指向3元集同一个元素,所以是 

  • 回答 2

    数据库基础知识MySQL,Oracle数据库安装SQL基础数据类型DDL基本增删改查简单查询(where子句,order by子句,group by子句,having子句)常用内置函数复杂查询(多表,复合查询,非关联子查询,管理子查询)综合查询训练用户与权限管理约束数据库范式与设计原...

  • 回答 3

    显示步骤如下://1. 注册JDBC的驱动Class.forName(oracle.jdbc.driver.OracleDriver);//2.定义连接字符串:url,user,passwordString url = String user = String password = //3.使用驱动管理器建立与数据库的连接Connection conn = DriverManager.getCon.....

  • 回答 2

    1、可以用ogg数据同步,从oracle把数据同步至mysql。2、可以先把数据结构导出(不导数据),然后在mysql上把数据结构先全部同步过去,之后用ETL工具(如kettle)并行抽数据到mysql

  • 回答 1

没有解决我的问题,去提问