最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

搞懂Oracle字符集的几个要点

来源:动视网 责编:小采 时间:2020-11-09 12:01:37
文档

搞懂Oracle字符集的几个要点

搞懂Oracle字符集的几个要点:经常会遇到一些ldquo;为什么我的查询显示乱码?rdquo;或者ldquo;为什么我导入后中文变成乱码?rdquo;的问题,如果想彻底搞懂 经常会遇到一些为什么我的查询显示乱码?或者为什么我导入后中文变成乱码?的问题,如果想彻底搞懂原因,需要研究下Or
推荐度:
导读搞懂Oracle字符集的几个要点:经常会遇到一些ldquo;为什么我的查询显示乱码?rdquo;或者ldquo;为什么我导入后中文变成乱码?rdquo;的问题,如果想彻底搞懂 经常会遇到一些为什么我的查询显示乱码?或者为什么我导入后中文变成乱码?的问题,如果想彻底搞懂原因,需要研究下Or


经常会遇到一些ldquo;为什么我的查询显示乱码?rdquo;或者ldquo;为什么我导入后中文变成乱码?rdquo;的问题,如果想彻底搞懂

经常会遇到一些“为什么我的查询显示乱码?”或者“为什么我导入后中文变成乱码?”的问题,如果想彻底搞懂原因,需要研究下Oracle的字符集以及他们之间的转换的关系,还有OS字符集、NLS_LANG跟数据库字符集的关系。简单的总结下要搞懂的几个要点:
1. NLS_LANG<----->数据库:保证字符相同,存储的2进制可变。
OS<----->NLS_LANG:存储的2进制不变,字符可能显示不同。
2. 如果NLS_LANG设置成跟数据库字符集一样,则通过ORACLE NET传递数据时存储的2进制不会发生转换。如果不一样,则会发生转换。
3. NLS_LANG并不是我们以为的用来显示给我们的字符的编码,真正用来显示的编码是OS编码,所以如果NLS_LANG跟OS编码不一样时,同一个2进制串可能就会由本来的‘你’显示成‘靠’。
4. 向数据库传递字符时应尽量将NLS_LANG设置成OS字符集,以保证输入的‘我’到NLS_LANG一层不会发生字符变化,,从而保证到数据库端存储的就是‘我’;
不过使用EXP等客户端工具导出时,应尽量将NLS_LANG设置成数据库字符集,以保证导出时数据原封不动,不会发生数据丢失的可能。导入时也应尽量将NLS_LANG设成导出文件的字符集,以保证将转换移至传输到数据库的一步。(EXP,IMP也可能会发生数据丢失问题,具体要看源数据库,EXP客户端NLS_LANG,IMP客户端NLS_LANG,目标数据库的字符集)

5.其实乱码,说到底就是用于显示字符的操作系统没有在字符编码中找到对应的字符导致的,也并不是只要将NLS_LANG设置成数据库字符集就可以避免乱码的。

贴两张EYGLE的转换图:

文档

搞懂Oracle字符集的几个要点

搞懂Oracle字符集的几个要点:经常会遇到一些ldquo;为什么我的查询显示乱码?rdquo;或者ldquo;为什么我导入后中文变成乱码?rdquo;的问题,如果想彻底搞懂 经常会遇到一些为什么我的查询显示乱码?或者为什么我导入后中文变成乱码?的问题,如果想彻底搞懂原因,需要研究下Or
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top