设为首页 加入收藏

TOP

Oracle字符集、编码(四)
2015-07-24 11:22:46 来源: 作者: 【 】 浏览:10
Tags:Oracle 字符集 编码
得一团乱麻了,Oracle SQL Developer完全忽略客户端NLS_LANG设置倒是让事情变得简单,不过PL/SQL Developer则是另一回事,我花了4天时间企图搞明白其中的编码转换过程,最终只证明它就是个不可理喻的玩意儿,唯一目前看起来还正确的结论是:如果要用PL/SQL Developer,只好还是把NLS_LANG设置得跟数据库字符集一致。其它就只能自求多福了。


5.NLS_LANG对ODP.NET的影响

\View Code

唯一受客户端NLS_LANG影响的是OracleString的GetNonUnicodeBytes()方法,此方法依赖于客户端本地设置的字符集,例如我们把NLS_LANG从AMERICAN_AMERICA.WE8MSWIN1252改成AMERICAN_AMERICA.US7ASCII

其中230(即HexE6)正是字符‘?’的编码,而63(即Hex3F)是ASCII中的问号(由于ASCII字符集中没有‘?’,故用问号代替)。


6.关于VARCHAR2, NVARCHAR2的其它问题

NVARCHAR2(N),其中的N是指字符数,不是字节数。不过其最大长度是以字节为单位,即4000字节。

VARCHAR2(N),其中的N可能是指字符数,也可能是指字节数。你可以显式地在声明的时候指定,比如VARCHAR2(10 BYTE)或者VARCHAR2(10 CHAR),未显式指明时,则由参数NLS_LENGTH_SEMANTICS决定。需要注意的是你能成功声明VARCHAR2(4000 CHAR)并不能保证你能真的存储4000个字符,如果超过4000字节,该报错Oracle还是会报错。

首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Oracle单实例情况下的librarycach.. 下一篇用Navicat连接Oracle数据库时报错..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·新书介绍《Python数 (2025-12-25 04:49:47)
·怎么利用 Python 进 (2025-12-25 04:49:45)
·金融界大佬力荐,Pyt (2025-12-25 04:49:42)
·你必须要弄懂的多线 (2025-12-25 04:22:35)
·如何在 Java 中实现 (2025-12-25 04:22:32)