PL/SQL Developer 中文字段显示乱码
2016-04-07 18:47
706 查看
本文转载自:http://m.blog.csdn.net/article/details?id=50972268(侵删)
PL/SQL Developer 中文字段显示乱码
数据库学习笔记(2)
在数据表中插入一条数据,可以正常出入,但是当查询显示的时候,中文字符无法显示出来,而是显示的问号(???)
如执行以下代码:
执行成功后, 输入select * from student 语句查询时,1能正常显示,SNAME 列的‘张三’显示为‘???’。
产生原因:
是由于数据库的编码格式和PL/SQL Developer的编码格式不统一造成的
解决方法:
(1)修改PL/SQL Developer 的编码格式:
在windows,环境变量设置中,创建一个名为“NLS_LANG”的系统环境变量,设置其值为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,
然后重新启动 pl/sql developer,这样检索出来的中文内容就不会是乱码了。如果想转换为UTF8字符集,可以赋予“NLS_LANG”为 “AMERICAN_AMERICA.UTF8”,然后重新启动 pl/sql developer。其它字符集设置也是一样的。(我是使用的这种方法,修改后重启pl/sql developer,能正常显示中文字符)
(2)查看和修改oracle数据库字符集:
查询结果:
SIMPLIFIED CHINESE_CHINA.AL32UTF8
–修改oracle数据库字符集:(在cmd命令窗口中输入sqlplus)
database closed.
database dismounted.
oracle instance shut down.
oracle instance started.
total system global area 135337420 bytes
fixed size 452044 bytes
variable size 109051904 bytes
database buffers 25165824 bytes
redo buffers 667648 bytes
database mounted.
system altered.
system altered.
system altered.
database altered.
出现这种问题只要去修改其中一个的编码格式与另一个一致就可以了,相对来说创建系统环境变量的方法更简单一些
PL/SQL Developer 中文字段显示乱码
数据库学习笔记(2)
在数据表中插入一条数据,可以正常出入,但是当查询显示的时候,中文字符无法显示出来,而是显示的问号(???)
如执行以下代码:
create table student( sid number(10), sname varchar2(20), constraint student_sid_un unique(sid) ) insert into student values(1,'张三');
执行成功后, 输入select * from student 语句查询时,1能正常显示,SNAME 列的‘张三’显示为‘???’。
产生原因:
是由于数据库的编码格式和PL/SQL Developer的编码格式不统一造成的
解决方法:
(1)修改PL/SQL Developer 的编码格式:
在windows,环境变量设置中,创建一个名为“NLS_LANG”的系统环境变量,设置其值为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,
然后重新启动 pl/sql developer,这样检索出来的中文内容就不会是乱码了。如果想转换为UTF8字符集,可以赋予“NLS_LANG”为 “AMERICAN_AMERICA.UTF8”,然后重新启动 pl/sql developer。其它字符集设置也是一样的。(我是使用的这种方法,修改后重启pl/sql developer,能正常显示中文字符)
(2)查看和修改oracle数据库字符集:
select userenv('language') from dual;
查询结果:
SIMPLIFIED CHINESE_CHINA.AL32UTF8
–修改oracle数据库字符集:(在cmd命令窗口中输入sqlplus)
sql> conn / as sysdba; sql> shutdown immediate;
database closed.
database dismounted.
oracle instance shut down.
sql> startup mount;
oracle instance started.
total system global area 135337420 bytes
fixed size 452044 bytes
variable size 109051904 bytes
database buffers 25165824 bytes
redo buffers 667648 bytes
database mounted.
sql> alter system enable restricted session;
system altered.
sql> alter system set job_queue_processes=0;
system altered.
sql> alter system set aq_tm_processes=0;
system altered.
sql> alter database open;
database altered.
sql> alter database character set internal_use JA16SJIS; sql> shutdown immediate; sql> startup;
出现这种问题只要去修改其中一个的编码格式与另一个一致就可以了,相对来说创建系统环境变量的方法更简单一些
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- 数据库链接字符串查询网站
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- Oracle 10g R2不能使用EM的问题
- 表空间操作
- PreparedStatement中in子句的处理
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- oracle sql日期比较
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- DB2实例管理
- DB2实例管理
- OS block size和Oracle block size,查找OS Blocksize的方法
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- oracle中创建数据库和表空间的几点总结
- 数据库自动备份脚本
- 第三章 数据库备份和还原