suse linux下oracle中文显示成问号,怎样修改oracle编码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了suse linux下oracle中文显示成问号,怎样修改oracle编码相关的知识,希望对你有一定的参考价值。

操作系统是suse linux enterprise desktop 10,oracle是 10g。
suse有的中文显示问号。oracle插入中文后查询得到的是问号。
suse下RC_LANG和RC_LC_ALL是zh_CN.GB2312.
oracle通过select name,value$ from props$ where name like '%NLS%';
查的NLS_NCHAR_CHARACTERSET
AL16UTF16
启动监听后,通过sqlplus / as sysdba登陆oracle,执行如下:
startup;
shutdown immediate;
startup mount;
alter system enable restricted session;
alter system set job_queue_processes=0;
alter database open;
alter database character set internal_convert zhs16gbk;
可是改不过来,请高手指教。

可以通过以下固定用法实现:
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 CHINESE_CHINA.AL32UTF8;
sql> shutdown immediate;
sql> startup;
备注:具体的编码格式根据实际需要修改即可,推荐UTF-8(默认是GBK)。
参考技术A utf8:
ALTER DATABASE `数据库` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

ALTER TABLE `数据表` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

gbk (包含gb2312):

ALTER DATABASE `数据库` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci

ALTER TABLE `数据表` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci本回答被提问者采纳
参考技术B alter database character set internal_use JA16SJIS; 参考技术C 重新创建一个数据库,选择ZHS16GBK呢?

Linux启动oracle数据库时,显示很多问号

如图所示,我在启动oracle数据库时出现了这么多问号,怎么解决这个问题?

参考技术A 字符集问题,不影响使用,
1、linux服务器 LANG 环境变量指定字符集
2、客户端(PUTTY、xshell之类)也有可指定字符集
一般建议使用英文,LANG=en_us 之类 客户端字符集设置UTF-8可解决大部分乱码追问

这个更改字符集的命令是怎么写的啊?

以上是关于suse linux下oracle中文显示成问号,怎样修改oracle编码的主要内容,如果未能解决你的问题,请参考以下文章

解决Linux系统下Mysql数据库中文显示成问号的问题

Linux启动oracle数据库时,显示很多问号

PL/SQL连接Oracle数据库,中文乱码,显示问号

oracle中文变问号

oracle 显示正常输出到界面为问号

cmd 连接oracle中文显示为问号???