pub 上的一个贴子。分享一下:
insert into的时候,在服务器端显示汉字,然后插入后select的时候是??
解决过程:
1、查询nls_database_parameters
查看系统characterset
2、查询props$系统表 看characterset
3、查看session的characterset,可以用alter session set nls_language=american
4、主要是把数据库、系统字符集、终端字符集、客户端字符集都支持中文,至少是ZHS16GBK,或者支持
诸多国家语言的UTF8,然后为了防止字符之间的编码转换,最好同意他们的编码,编码和字符集又是不同
的概念(有时间需要看一看)
5、我的测试库l建库的时候建立的字符集是ZHS16GBK,语言设置的是AMERICAN_AMERICA
我设置系统字符集和数据库一致后,设置终端的oracle的.bash_profile文件vi追加
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
最终解决问题
总结:
1、解决问题的过程不是按照人家的案例而去做人家的解决方法,必须理解解决的原理,然后根据原理来结合自己的环境进行修改
2、中日韩字符集本来就是很不同于世界其他国家的字符集的,所以这个问题很不好弄,字符集与编码的概念和方法需要研究看一下,数据库是怎样转换编码机制的需要看一下
3、还有一种特殊情况,也有好多数据库遇到了这种案例,概括为在错误的环境下面输入数据,然后在错
误的select数据出来满足理想中的结果,但实际在数据库内部数据记载的是错误的,但在表象出现了“负负得正”的情况,解决方法以及实验后续有时间写成文档共享