IMP-00041: 警告: 创建的对象带有编译警告解决办法

出现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 即可
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
title %}管理员页面{% endblock %} {% block content %} <h2>用户列表</h2> <table class="table"> 这个错误通常是由于环境字符集与导入数据的字符集不兼容导致的。可能需要检<thead> <tr> <th>ID</th> <th>用户名</th> <th>密码</th> 查以下几个方面: 1. 环境变量设置是否正确。可以使用以下命令检查: ``` echo <th></th> </tr> </thead> <tbody> {% for user in users %} <tr $NLS_LANG ``` 如果输出为空或者不正确,可以尝试设置正确的字符集,如: > <td>{{ user[0] }}</td> <td>{{ user[1] }}</td> <td>{{ user[ ``` export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 ``` 2. 确认导入数据的字符集2] }}</td> <td> <a href="/admin_edit_user/{{ user[0] }}" class="btn btn-default">是否与数据库字符集一致。可以使用以下命令查看数据库字符集: ``` select * from nls_database_parameters编辑</a> <form action="/admin_delete_user/{{ user[0] }}" method="post" style="display:inline"> where parameter='NLS_CHARACTERSET'; ``` 如果导入数据的字符集与数据库字符集不一致,可以尝 <button type="submit" class="btn btn-default">删除</button> </form> </td> </试使用 `iconv` 等工具进行转换。 3. 确认导入数据文件的编码格式是否正确。可以tr> {% endfor %} </tbody> </table> <a href="/admin_add_user" class="btn btn-primary">添加使用以下命令查看文件编码: ``` file -i filename ``` 如果文件编码格式不正确用户</a> {% endblock %} ``` `admin_add_user.html`: ```html {% extends 'base.html' %} {% block title %}添加用户{% endblock %} {% block content %} <h2>添加用户</h2> <form method="post"> ,可以使用 `iconv` 等工具进行转换。 希望这些信息能够帮到你解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值