HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\nls_lang对你的应用没有影响
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\IDO\nls_lang没有改过
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEO\nls_lang ORACLE的该软件产品的客户端的子符集,该项比较有用,如:如果HOMEO表示ORACLE的数据库软件,那么HOMEO\nls_lang 下的子符集必须同数据库中的一致,否则会出现中文乱码现象。
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\IDO\nls_lang没有改过
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEO\nls_lang ORACLE的该软件产品的客户端的子符集,该项比较有用,如:如果HOMEO表示ORACLE的数据库软件,那么HOMEO\nls_lang 下的子符集必须同数据库中的一致,否则会出现中文乱码现象。
所以想修改数据库的字符集,存是encode,取出后再decode.我想改数据库本身的字符集试试,但不只到如何改?
//当前字符集
SQL> select name,value$ from props$ where name='NLS_CHARACTERSET';NAME VALUE$
------------------------------ ----------------------------------------
NLS_CHARACTERSET US7ASCII//change to UTF8
update props$ set value$='UTF8' where name='NLS_CHARACTERSET';//changed
SQL> select name,value$ from props$ where name='NLS_CHARACTERSET';NAME VALUE$
------------------------------ ----------------------------------------
NLS_CHARACTERSET UTF8
update props$ set value$='UTF8' where name='NLS_CHARACTERSET'
增加一个串nls_lang,值为:UTF8
select userenv('LANGUAGE'),userenv('LANG') from dual;
修改注册表不能修改数据库的字符集,修改数据库的字符集需要修改数据库的配置参数,我没有试过,不知道是否可以。
是不是修改注册表建议修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEO\
增加一个串nls_lang,值为:UTF8与update props$ set value$='UTF8' where name='NLS_CHARACTERSET';作用等同?
alter database db1 character set WE8ISO8859P1;
alter database db1 national character set WE8ISO8859P1;Restrictions:
1、 You must have SYSDBA system privilege, and you must start up the database in restricted mode (for example, with the SQL*Plus STARTUP RESTRICT command).
2、 The current character set must be a strict subset of the character set to which you change. That is, each character represented by a codepoint value in the source character set must be represented by the same codepoint value in the target character set.请千万小心:alter database character set命令是不可逆的,也就是说一旦修改了,就不一定能改回来,所以请先对数据库进行冷备份,以防万一。
命令是可以修改数据库字符集的,但是我碰到过这种情况。
服务器端是9i,修改完后如果客户端装的也是9i的话没什么问题,但是如果客户端装的是8.1.5及以下的版本的话,在两个客户端写进去的东西分别在另外的客户端读出来就是乱码的,最后我把数据库删掉重建,在开始时就选定字符集就OK了。所以我建议字符集还是需在建库时就选好,否则数据库的版本兼容就不行了
select * from porps$ where name = 'NLS_CHARACTERSET';Import会话时,可以在NLS_LANG设置字符集,
CHARSET选项也是用来指定导出文件的字符集的,但是可能会导致数据丢失,估计以后会有改善。