关于oracle导出的dmp导入失败的问题。提示值过大。oracle修改字符编码集。
问题描述:导出的dmp文件,再次导入其他oracle时,报错某列的值过大。问题在于编码集不匹配的问题。将导出dmp的oracle修改为目标oracle的编码集即可。
查看字符编码:
sql>select * from v$nls_parameters;
结果如截图:此时的编码为 AL32UTF8
修改字符集过程:
使用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中。
问题解决。