imp导入IMP-00098: INTERNAL ERROR: impccr2_字符集_部分存储过程创建不了

Metalink 说
Symptom(s)
~~~~~~~~~~
  Export from a V734 database, while importing in V920 database gave imp-98 error:  IMP-00098: INTERNAL ERROR: impccr2  
  
Cause
~~~~~~~
Imp-98 errors were generated when Oracle tried to import package bodies  with comment-lines with special characters.

Fix
~~~~

Before exporting, remove the accentuated characters from comment lines of  the package/procedures.


后来处理方法为:
1,设置secure crt及NLS_LANG及要导入的ORACLE数据库字符集为一致性,全是ZHS16GBK(记得:secure crt的字符集很重要,不然还是导不进存储过程,选择default)
  -bash-3.2$ env|grep LANG
NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
secure crt选择默认
数据库字符集为zhs16gbk
-------------------

[ora10g@capaa ~]$ oerr imp 00098
00098, 00000, "INTERNAL ERROR: %s"
// *Cause: An INTERNAL error occurred.
// *Action: Contact Oracle Worldwide Support.

metalink上查也没有相应的信息。

结果是检查了原文件和服务器上的文件大小,服务器上文件大小小了几个字节,可能是文件上传时传输的问题,重新上传对应的文件,并检查相应的文件大小是否正确,重新导入就没问题了。

所以在导入dmp文件时首先确保dmp文件是否拷贝完整,以避免后续出现莫名奇妙的问题。

-------------------------
IMP-00098 错误及解决方法

出现这个问题可能有以下两方面

1)导入导出的客户端的字符集不一致

在简体的操作系统下导出了数据EXP,然后后来那台电脑上装了个繁体的操作系统,导入时都出现IMP-00098: INTERNAL ERROR: impccr2 这样的错误,解决方法如下:
1.运行regedit,选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1\nls_lang双击修改数据数值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK
2.登陆到oracle里面运行update props$ set value$='ZHS16GBK' where name='NLS_CHARACTERSET'
3.删除已经创建的用户.比如:我自己的数据库创建的用户是HDDEV 我就用DROP USER HDDEV CASCADE语句删除用户。
4.删除已经创建的表空间。在TABLESPACE里面删除已经有的表空间
5.重新创建表空间,建角色,建用户,导入数据

2)传输导出文件时 出错,一般用ftp时 应该用二进制的方式。

3)导入时的buffer 设置的太小或者没有设置。

以下为此错误的英文解释和解决办法。

IMP-00098: INTERNAL ERROR: impgst2Segmentation Fault - core dumped [ID 578616.1]   
Applies to:  
Oracle Server - Enterprise Edition - Version: 9.2.0.8 to 10.2.0.4
This problem can occur on any platform.
Symptoms
An import command fails with the following error:  
illegal lob length marker 65535  
bytesread = 00000000000  
TABLE =  
IMP-00098: INTERNAL ERROR: impgst2Segmentation Fault - core dumped
If executing the same import command by adding "show=y" same error is reported:
illegal lob length marker 65535  
bytesread = 00000000000  
TABLE =  
IMP-00098: INTERNAL ERROR: impgst2Segmentation Fault - core dumped  
Cause
The fact that running import with "show=y" generates same error indicates that the export dump file is corrupted.  
When "show=y" is used the content of the export dump file is listed to the display and not imported.  
There are two ways to corrupt an export dump file:  
- the export tool corrupts the file itself;  
- the file is corrupted during the transfer (move/copy) from the source to the target machine; this is the most common cause of the error.  
Solution
Since the export dump file is corrupt, the export needs to be done again:
- After the export is finished one should always check if the export dump file is corrupted on the  
source machine using imp with "show=y".
If getting the above errors then the file is corrupted on the source machine;  
- Assuming the file is not corrupted on the source machine, after transferring the file, one must execute imp with "show=y" on target machine. If getting the above errors then the file was corrupted during transfer.  
Use ftp command in binary mode as a way of transferring the dump file between source and target machines.  
- If imp with "show=y" reports no errors after the above steps then proceed with the real import (without "show=y").
NOTE: A similar case is reported in Note 3890213.8 and may need to be investigated as well.
References
NOTE:3890213.8 - Bug 3890213 - IMP-98 possible importing zero length Lobs with CHUNKSIZE > 32767

参考资料:

http://blog.163.com/18_2/blog/static/2174448200932753814644/


exp imp 使用相同的字符集
export NLS_LANG=American_America.AL32UTF8
export LC_ALL=english

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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` 等工具进行转换。 希望这些信息能够帮到你解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值