linux下Oracle显示中文乱码
2016-04-13 14:04
459 查看
CRT 客户端 添加数据后,查询内容中文的数据都是???,网上搜索下内容,解决方法如下:
1.Oracle数据库出现乱码的原因:
操作系统与服务器一致,但客户端与服务器字符集不一致
客户端与服务器一致,但操作系统与服务器不一致
2.解决办法:
设置相关的字符集,保证操作系统、客户端、数据库服务器,保证这三者的字符集都相同。
3.针对情况:
设置客户端的字符集与服务器一致,假如服务器的字符集为:UTF8(建议创建数据库的时候用这个字符集,中英文都能兼容)
客户端Linux设置步骤:
1.切换至oracle数据库的安装用户,我的用户名就是oracle
$ su - oracle
$ cd ~ //进入oracle用户的家目录
$ vim .bash_profile //编辑oracle用户下的.bash_profile文件
.bash_profile文件内容:(每个人的这个文件具体的设置可能都不太一样,不用担心,注意红色那一行就行了)
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 //设置这个参数就代表设置用户客户端的字符集,在创建数据库的时候不设置这个参数也没问题,建议是最好规划好自己的库需要用到什么时候类型的字体,然后再设置这个值,最好保持与数据库一致,当然这个参数可以随时改变.(我自己的数据库是用UTF8字符集)
SQL> select userenv('language') from dual; //oracle中查询的字符集
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
$ source .bash_profile //执行source命令使修改完的.bash_profile文件生效
至此,设置完毕,再次登录Oracle数据库,查询显示正常,但有一点要注意,就是如果你插入数据时的字符集不是UTF8下执行的,当你客户端和服务器都变成UTF8字符集后,以后插入的中文可能显示就为乱码了。所以说只有三个点(客户端、操作系统、数据库)的字符集保持一致的时候才能让数据库里面的中文正常显示。
1.Oracle数据库出现乱码的原因:
操作系统与服务器一致,但客户端与服务器字符集不一致
客户端与服务器一致,但操作系统与服务器不一致
2.解决办法:
设置相关的字符集,保证操作系统、客户端、数据库服务器,保证这三者的字符集都相同。
3.针对情况:
设置客户端的字符集与服务器一致,假如服务器的字符集为:UTF8(建议创建数据库的时候用这个字符集,中英文都能兼容)
客户端Linux设置步骤:
1.切换至oracle数据库的安装用户,我的用户名就是oracle
$ su - oracle
$ cd ~ //进入oracle用户的家目录
$ vim .bash_profile //编辑oracle用户下的.bash_profile文件
.bash_profile文件内容:(每个人的这个文件具体的设置可能都不太一样,不用担心,注意红色那一行就行了)
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 //设置这个参数就代表设置用户客户端的字符集,在创建数据库的时候不设置这个参数也没问题,建议是最好规划好自己的库需要用到什么时候类型的字体,然后再设置这个值,最好保持与数据库一致,当然这个参数可以随时改变.(我自己的数据库是用UTF8字符集)
SQL> select userenv('language') from dual; //oracle中查询的字符集
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
$ source .bash_profile //执行source命令使修改完的.bash_profile文件生效
至此,设置完毕,再次登录Oracle数据库,查询显示正常,但有一点要注意,就是如果你插入数据时的字符集不是UTF8下执行的,当你客户端和服务器都变成UTF8字符集后,以后插入的中文可能显示就为乱码了。所以说只有三个点(客户端、操作系统、数据库)的字符集保持一致的时候才能让数据库里面的中文正常显示。
相关文章推荐
- oracle基本建表语句
- linux 6.3安装Oracle11.2 R2数据库问题汇总
- PLSQL连接远程ORACLE遇到的中文乱码问题
- Oracle索引抑制即索引不起作用
- 修改Oracle Virtual Box中vdi的大小
- 修改Oracle Virtual Box中vdi的大小
- oracle--insert
- Oracle查询列重命名
- Oracle、Mysql、SqlServer创建表和给表和字段加注释
- 将Oracle分区表的定义导到文件中
- SQL Server数据转到Oracle 数据库(二)
- 关于Oracle 12C pdb用户无法登录的问题
- 修改oracle字符集
- Oracle录屏命令spool的使用
- Oracle Hang Manager
- Oracle Redo Log 机制小结(转载)
- Oracle之BBED之(二)-----BBED更改数据块
- 【转】JABC访问oracle数据库报ORA-12505
- oracle中的decode的使用
- PL/SQL导出导入Oracle表数据