oracle中文变问号

Posted

tags:

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

有什么办法把问号变成中文

数据库字符集设置不对,修改下就好了。
1、先用system和密码登陆SQLPLUS(如果不能直接以sys登陆到sqlplus的话),进入到sql*plus之后,可以通过conn / as sysdba转变为sysdba身份连接到数据库
2、开始修改编码
shutdown immediate;停止oracle服务以及监听。如果服务停止,这部可省略
startup mount;
alter system enable restricted session;
alter system set job_queue_processes=0;初始化设置job
alter database open;
alter database character set internal_use utf8;设置编码 (alter database character set internal_use ZHS16GBK;)(alter database character set internal_use WE8ISO8859P1;)
shutdown immediate; 关闭
startup; 重启
至此编码已经设置完成。
参考技术A 强行修改服务器端ORACLE当前字符集

在用imp命令加载数据前,先在客户端用sql*plus登录system DBA用户,执行下列SQL语句进行当前ORACLE数据库字符集修改:

SQL > create database character set US7ASCII
* create database character set US7ASCII
ERROR at line 1:
ORA-01031: insufficient privileges

你会发现语句执行过程中,出现上述错误提示信息,此时不用理会,实际上ORACLE数据库的字符集已被强行修改为US7ASCII,接着用imp命令装载数据。等数据装载完成以后,shutdown 数据库,再startup 数据库,用合法用户登录ORACLE数据库,在sql> 命令提示符下,运行select * from V$NLS_PARAMETERS,可以看到ORACLE数据库字符集已复原,这时再查看有汉字字符数据的表时,汉字已能被正确显示。
打字不易,如满意,望采纳。追问

这是复制的吧

参考技术B 在哪儿看到中文变成问号?

是数据库中存储的已经是问号了,

还是在哪个工具中查询出来的是问号?追问

pl/SQL里面插入就是问号了

追答

再详细一点吧?怎么插入就是问号?

数据库是什么字符集,客户端是什么字符集?

追问

能远程么

追答

你把问题描述清楚就行了。要学会提问。

追问

NSL_LANG=AMERICAN_AMERICA.us7ascii这是我环境变量里面的,我往数据库里面插入中文的字符串,查询的时候显示问号

追答

处理中文,怎么能用 us7ascii 呢

应该用utf-8 或者 GBK 之类的啊

数据的字符集呢?

追问

一开始用的GBK,也是问号,然后网上看见改成us7ascii了
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
加下 qq 447340379

本回答被提问者采纳

PLSQL中table表中的汉字显示问号,装了汉化包之后还是问号,不知道怎么解决

装的oracle客户端连接oracle数据库

你好,建议新建一个变量名NLS_LANG 变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

具体操作步骤:
我的电脑-右键-属性-高级-环境变量-系统变量-新建变量
变量名:NLS_LANG
变量值:AMERICAN_AMERICA.UTF8

如果想转换为UTF8字符集,可以赋予“NLS_LANG”为 “AMERICAN_AMERICA.UTF8”,然后重新启动 pl/sql developer。
参考技术A Tools->Preferences->Font->Grid->修改里面的字体为黑体(或其他汉字库),文字选简体中文。追问

不是这个原因,还是不行

追答

你的系统是什么环境?

追问

xp之前的win7也是这样,是不是要改系统的语言设置,这个是中文呀

以上是关于oracle中文变问号的主要内容,如果未能解决你的问题,请参考以下文章

linux下,oracle的视图中中文变问号了,描述有点长,请不吝赐教

oracle数据库里中文显示不出来 全是问号

PLSQL中table表中的汉字显示问号,装了汉化包之后还是问号,不知道怎么解决

中文变问号问题

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

oracle 插入中文查询显示乱码,问号是啥原因