日期:2014-05-17  浏览次数:20914 次

数据库字符集,如何修改从ANSI改为unicode
由于用造字程序(eudcedit.exe)进行造字,GBK码位已经不够用了,想用unicode码位进行造字,但是unicode码位所造出的字,在数据库中有的能显示,有的则是问号.

    对于unicode   码位越靠后的部分(即超出   GBK码位的那些),则越是问号,现在想让数据库支持unicode码位的显示,应该如何做,就是改变数据库的字符集

    这些越靠后的码位,在txt或word中能正确显示,在数据库里就是问号

    怎样修改数据库的字符集,安装的时候在哪一步选择字符集的支持

请高手指点

------解决方案--------------------
刚刚得到论坛其他人的帮助,我也来试试回答个问题,大家交流一下。
“怎样修改数据库的字符集,安装的时候在哪一步选择字符集的支持”
1.我记得是在dbca的最后几步,initialization parameters 那个步骤 ,有个tab 是character sets 里面可以选择。 照你的要求,你可能需要用 AL32UTF8 类型的。
2.关于修改的问题。
这个问题我试过使用dbca的重新配置功能,但那些选项一直都为灰色,修改不了。
后来我了解到显示该设置值的 View :
nls_database_parameters .
--------
select name,
substr(value$, 1, 40)
from props$
where name like 'NLS% '
--------
通过显示该的所有值你可以发现:   NLS_NCHAR_CHARACTERSET AL16UTF16
这里就是设置字符格式的地方了,然后修改table props$ ,
update props set value$=’AL32UTF8’ where name=’NLS_NCHAR_CHARACTERSET’

通过以上方法,我成功更改了字符格式。
希望对你有用。



------解决方案--------------------
将你的Oracle Client的字符集设置成与Oracle Server字符集一样,或者是Oracle Server字符集的子集。

最好不要去该Oracle server的字符集,因为Oracle server的字符集是在安装的时候 就已经确定了,如果修改了,很可能会出现意想不到的问题。