oracle 10g 更改字符集 em资料库中的部分数据不能正确转换成新字符集

   今天更改一个oracle 10G库的字符集的时候,发现与em仓库冲突,下面是详细的问题和解决办法,希望对大家有帮助

   csscan SYSTEM/aceway FULL=y FROMCHAR=ZHS16CGB231280 TOCHAR=ZHS16GBK ARRAY=1024000 PROCESS=2

通过上面的命令扫描的结果是sysman用户下的表的数据不能正确装换,考虑sysman用户主要是保存em资料信息的用户,所以

考虑先删掉这个用户,然后重建em资料库。

    删掉sysman用户后,字符集顺利转换,但是用emca -repos recreate重建资料库时却失败了,经过查看日志,发现有“

配置: ORA-01920: user name 'MGMT_VIEW' conflicts with another user or role name
ORA-06512: at line 40

oracle.sysman.assistants.util.sqlEngine.SQLFatalErrorException: ORA-01920: user name 'MGMT_VIEW' conflicts with another user or role name

“的错误,因为mgmt_view也是一个em相关的用户,所以猜测是因为重建em 资料库的时侯需要重建这个用户,但是数据库中已经有改用户了,所以

报错。删除该用户后重建成功。

 

 

   总结:1.oracle 10g 更改字符集与em资料库中的内容又冲突,资料库中的部分表的数据不能转换成新字符集,处理掉这部分数据方可转换成功。

             2.我上面的手动删除用户的操作不够安全也不够规范,我们可以用emca -repos drop 命令删除em 资料库,然后再用该命令重建em资料库

解决这个问题。

    更改数据库字符集请参考: http://blog.csdn.net/wenhuiqiao/article/details/7663765

你可能感兴趣的:(oracle,数据库,user)