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

来源:互联网 发布:夜访吸血鬼 结局 知乎 编辑:程序博客网 时间:2024/04/29 00:00
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 withspecial 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
原创粉丝点击