在ORACLE查询出来的结果凡是中文的都是乱码 ,用pl/sql亦如此,该如何解决呢?

 我来答
思思d84
2012-05-26 · 超过17用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:50.9万
展开全部
数据是怎么来的是导入还是客户端录入的
如果是导入的那就是你导入数据的字符集和导入的oracle的字符集不一致,那就修改数据库的字符集重新导入数据
如果是客户端录入的那就是客户端的字符集和oracle的不一致 有两个办法一是修改客户端的代码使客户端的字符集和oracle一致,二是修改数据库的字符集重新录入数据
追问
我是从excel表中 通过pl/sql导进去的 但是只要是中文就显示乱码 包括 比如给一个字段起个中文的别名 例如 select name "姓名" from student  其中查询出来的结果 姓名这个字段显示的也是‘??’还请帮忙 谢谢了 最好步骤详细些
追答
估计是客户端和服务端的字符集不一致修改字符集把
1.修改客户端字符集
先查看服务端字符集
sqlplus /nolog
SQL>conn / as sysdba;
SQL>select userenv(‘language’) from dual;
修改客户端的HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\NLS_LANG
和服务端一致 后再重新导入数据

2.或者修改服务端字符集
服务端执行
sqlplus /nolog
SQL>conn / as sysdba;
若此时数据库服务器已启动,则先执行SHUTDOWN IMMEDIATE命令关闭数据库服务器,然后执行以下命令:
  SQL>STARTUP MOUNT;
  SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
  SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
  SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
  SQL>ALTER DATABASE OPEN;
  SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;    SQL>ALTER DATABASE national CHARACTER SET INTERNAL ZHS16GBK;
SQL>SHUTDOWN IMMEDIATE;
  SQL>STARTUP
moreazy
2012-05-26 · TA获得超过742个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:133万
展开全部
查看客户端字符集和数据库字符集是否一致
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沉稳内敛ww
2012-05-26 · 超过21用户采纳过TA的回答
知道答主
回答量:152
采纳率:0%
帮助的人:64.3万
展开全部
转字符格式GBK
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式