一、问题由来
       随着国标GB18030的推行,各行各业都在如火如荼的落实改造。自己在工作中也发现很多问题,查阅了很多资料都未解决自己的问题。经过慢慢摸索,对生僻字经常出现的问题进行总结,现分享如下。

二、问题描述

1. oracle存储不了生僻字。

2. 在PL/SQL Developer 中输入生僻字时,该生僻字无法正常显示。

3. pl/sql能录入能显示,通过jdbc不能显示。

4. jdbc能录入能显示,通过pl/sql不能显示。

三、原因

1.对于数据库而言,不区分什么生僻字,它仅仅是存储一堆的字节而已。能否存储生僻字主要是看以下几个方面:

a.数据库自身设置的字符集(该字符集会影响jdbc或odbc驱动与服务器的传输编码,不像mysql那样可以指定传输编码。这个没有找到相关资料辅佐,有兴趣可以抓包验证),这里面有两个关键的参数,一个是针对varchar2,一个是针对nvarchar2,这两个的区别可自行百度,资料比较多。

如图所示,我自己的数据库varchar2类型我设置的是AL32UTF8(all language 32位即4个字节 utf-8编码)。nvarchar2我也是用的utf-8。utf8和gbk的区别这儿也不做描述,百度资料很多。这儿可以看到我的数据库是大字符集的,能存储生僻字。

b.客户端的字符集,这个可通过环境变量或注册表等修改(环境变量名为NLS_LANG,不会修改可自行百度)。

如图,我的客户端也是使用utf-8编码。网上的很多oracle显示中文乱码的问题差不多就到这儿了,确定了这两步差不多就可以解决中文乱码问题了。但是现在要说的是生僻字,为啥一会儿能显示一会儿又不能显示让人很迷惑,下面一一讲解。

2.数据库能存储生僻字后,想着插入一个生僻字来做测试,但是pl/sql却不能显示该生僻字,这个原因首先取决于你有没有安装能显示相关生僻字的字库(目前市面的大多字库都不能显示生僻字),其次是pl/sql工具要选择生僻字的字库,这样在pl/sql的编辑界面和结果界面才能显示生僻字。

3.设计了一张varchar2字段的表,pl/sql能插入和显示生僻字,但是程序(jdbc或odbc)读取不到该字。该字“

pl/sql developer oracle生僻字显示问题相关推荐

  1. oracle 前导列_通过 PL/SQL Developer (Oracle)-数据库(26)

    本篇文章介绍了跟SQL语句性能提升有关的执行计划,工作时间长了,或者说高手的进阶途径之一,就是如何能够在数据量很大的情况下,数据库的查询效率还能保持良好的性能. 感兴趣的朋友,可以收藏这篇文章哦,未来 ...

  2. pl sql developer中的CnPlugin插件,sql代码自动补全提示,批量添加单引号

    一.安装 使用pl sql developer的版本7以上,下载CnPlugin插件,文件解压缩后,将里面的CnPlugin.dll和CnPlugin文件夹放到你的pl sql的安装路径中的PlugI ...

  3. pl/sql developer 设置oracle的date类型默认显示样式

    oracle里默认的date显示样式: 我的是汉化过的: 进入后,点击工具->首选项->日期/时间设置即可: 设置后在pl/sql developer中查看: 英文版的操作步骤: Tool ...

  4. oracle查询数据都是问号,Oracle数据库PL/SQL Developer查询结果显示问号乱码的解决方法...

    PL SQL Developer,查询结果中的中文变成了一堆问号,SQL语句中的中文被提示invalid character,不能识别. 解决方法: 执行,select userenv('langua ...

  5. pl sql如何调试oracle存储过程,PL/SQL Developer中调试oracle的存储过程

    作者:iamlaosong 唉,真土,之前用Toad,1直用dbms_output.put_line调试存储进程,只觉得不方便,用上PL/SQL Developer后,习惯性的还是用这个方法,人都是有 ...

  6. 64位WINDOWS 使用PL SQL DEVELOPER 连接ORACLE 出错问题解决

    问题: 开始配置好后,执行以下代码: 在PL SQL DEVELOPER 查询 ID          A            DUTY ------------------------------ ...

  7. oracle改字体大小_集成开发环境PL/SQL Developer教程:设置行号和修改字体大小

    PL/SQL Developer是一个集成开发环境,它专门针对Oracle数据库的存储程序单元的开发所用.PL/SQL开发者在开发Oracle应用程序的时候注重于开发工具简单易用,代码简洁和开发效率高 ...

  8. 本机不安装Oracle客户端,使用PL/SQL Developer和 Instant Client 工具包连接oracle 11g远程数据库

    1,先到Oracle网站下载Instant Client : http://www.oracle.com/technology/global/cn/software/tech/oci/instantc ...

  9. PL/SQL developer连接oracle出现“ORA-12154:TNS:could not resolve the connect identifier specified”问题的解决

    PL/SQL developer连接oracle出现"ORA-12154:TNS:could not resolve the connect identifier specified&quo ...

最新文章

  1. [Server] 服务器配置SSH登录邮件通知
  2. Cisco Catalyst 2960系列交换机资料
  3. 大型网站架构系列:分布式消息队列
  4. 温州大学《深度学习》课程课件(十、人脸识别与神经风格迁移)
  5. cp命令的编写——浅谈系统调用
  6. [react] React组件的构造函数有什么作用?
  7. 【2020牛客寒假基础算法训练营】第五场总结
  8. 使用BeautifulSoup爬取“0daydown”网站的信息(1)
  9. 【光学】基于matlab圆孔菲涅尔衍射【含Matlab源码 522期】
  10. java jdk9_jdk9下载-jdk9下载9.0.4 官方最新版-西西软件下载
  11. 人脑意识转入量子计算机,意识的产生 说明人类大脑可能是台高度发达的量子计算机!...
  12. 【wps表格】重点标识折线图上的某个数据点
  13. 帮助台与服务台有何区别,你知道吗?
  14. 手把手教你建立私人数据检索库(二)
  15. Local declaration of 'XXX' hides instance variable
  16. mysql 1213
  17. android 华为mate 获取定位权限,【严重安全问题】开启了定位权限,但是软件还是没权限...
  18. 基于s32k146的IO口模拟串口
  19. python程序段的基本结构_python3 第三章 - 程序的基本结构
  20. 【火同学】OPencv学习笔记——滑动条的创建和使用

热门文章

  1. python老鼠打洞问题
  2. word转图片(aspose-words-18.6 java版破解)
  3. SSTI简单总结和例题
  4. html页面分为三大部分,web标准主要三大部分
  5. 昨天用了下Netty,发现真香!
  6. mysql正则表达式中文匹配问题
  7. Openstack 多 region
  8. Android开发精典案例60个
  9. android硬编码用rtmp,Android RTMP推流之MediaCodec硬编码二(RTMPDump推流)
  10. 扎心话题 | 设计院背后的潜规则你知道吗?