关于oracle导出的dmp导入失败的问题。提示值过大。oracle修改字符编码集。

问题描述:导出的dmp文件,再次导入其他oracle时,报错某列的值过大。问题在于编码集不匹配的问题。将导出dmp的oracle修改为目标oracle的编码集即可。

查看字符编码:
sql>select * from v$nls_parameters;

结果如截图:此时的编码为 AL32UTF8

关于oracle导出的dmp导入失败的问题。提示值过大。oracle修改字符编码集。

 

修改字符集过程:

使用cmd,键入sqlplus打开oracle,以sysdba身份登录。

顺序执行以下代码:

>shutdown immediate;

>startup mount;

>alter system enable restricted session;

>alter system set job_queue_processes=0;

>alter system set aq_tm_processes=0;

>alter database open;

(注意:此处的utf8仅为样例,修改为目标oracle的编码集即可)

>alter database character set utf8 或者   >alter database character set internal_use utf8;   (如果用前者,可能提示更改的字符集要为超集的问题。使用后者,增加“internal_use ”修饰,即可直接更改字符集)

>shutdown immediate;

>startup; 

 

再次查看字符编码,确认编码集已经被修改。然后再导出dmp,导入到目标orale中。

问题解决。