一个varchar2(24),最多只能存4个汉字?请教大神

优雅刺客 2017-11-07 03:04:51
是不是oracle哪里没有设置对的问题啊
...全文
1332 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
dengchenlu 2017-11-08
  • 打赏
  • 举报
回复
select lengthb(N'XXXX') from dual;
Marcel1 2017-11-07
  • 打赏
  • 举报
回复
lengthb显示4个汉字24字节。。。哪里的问题呢,不知道了
minsic78 2017-11-07
  • 打赏
  • 举报
回复
引用 31 楼 Shurik 的回复:
大侠你答对了 给你50分~哈哈
不容易啊
优雅刺客 2017-11-07
  • 打赏
  • 举报
回复
大侠你答对了 给你50分~哈哈
minsic78 2017-11-07
  • 打赏
  • 举报
回复
引用 29 楼 Shurik 的回复:
但是为什么以前印象里oracle都是一个汉字2个字节呀
优雅刺客 2017-11-07
  • 打赏
  • 举报
回复
但是为什么以前印象里oracle都是一个汉字2个字节呀
minsic78 2017-11-07
  • 打赏
  • 举报
回复
引用 27 楼 Shurik 的回复:
我修改的环境变量 varchar2不是一个汉字2个字节吗
varchar2的“2”,不是说汉字是两个字节的,而是跟早期的varchar类型区别,汉字几个字节,不是由类型决定的,而是由字符集决定的。
优雅刺客 2017-11-07
  • 打赏
  • 举报
回复
我修改的环境变量 varchar2不是一个汉字2个字节吗
minsic78 2017-11-07
  • 打赏
  • 举报
回复
引用 24 楼 Shurik 的回复:
亲,确实是这里的问题,我修改过来就好了,但是现在一个汉字3个字节!咋整
UTF8字符集下,本来就是一个汉字3个字节
minsic78 2017-11-07
  • 打赏
  • 举报
回复
引用 22 楼 Shurik 的回复:
亲,是不是归根结底是客户端乱码的问题
你客户端出现乱码,就是客户端设置的问题。
引用 23 楼 Shurik 的回复:
我本地修改NLS_LANG以后,还是那样呀,还需要其他操作吗
我上面要贴图的,我不知道你改了啥?注册表?还是环境变量?然后是否有检查环境变量或者注册表设置生效?
优雅刺客 2017-11-07
  • 打赏
  • 举报
回复
亲,确实是这里的问题,我修改过来就好了,但是现在一个汉字3个字节!咋整
优雅刺客 2017-11-07
  • 打赏
  • 举报
回复
我本地修改NLS_LANG以后,还是那样呀,还需要其他操作吗
优雅刺客 2017-11-07
  • 打赏
  • 举报
回复
亲,是不是归根结底是客户端乱码的问题
minsic78 2017-11-07
  • 打赏
  • 举报
回复
引用 19 楼 Shurik 的回复:
我明白您的意思,但是如果另外一台机器出现这个问题了,我的系统就没法用了。有什么解决方案吗~
另外一台出这问题,你就解决另外一台的问题,重复一遍:服务端解决不了这个问题
优雅刺客 2017-11-07
  • 打赏
  • 举报
回复
我明白您的意思,但是如果另外一台机器出现这个问题了,我的系统就没法用了。有什么解决方案吗~
minsic78 2017-11-07
  • 打赏
  • 举报
回复
引用 18 楼 Shurik 的回复:
NLS_LANG的值是您说的那个值,然后呢,亲
贴图吧……
优雅刺客 2017-11-07
  • 打赏
  • 举报
回复
NLS_LANG的值是您说的那个值,然后呢,亲
minsic78 2017-11-07
  • 打赏
  • 举报
回复
引用 15 楼 Shurik 的回复:
这个和客户端还有关系呀,有没有在oracle端设置的方式,不可能去每个客户端我都去设置呀。谢谢指教哈
这个就是客户端设置的关系,你是中文的客户端,NLS_LANG就得设置成中文,这样数据库才知道将你送过去的字符转化为UTF8字符集编码,不是能不能在服务器端设置的问题,而是根本就是客户端的问题。
优雅刺客 2017-11-07
  • 打赏
  • 举报
回复
这个和客户端还有关系呀,有没有在oracle端设置的方式,不可能去每个客户端我都去设置呀。谢谢指教哈
minsic78 2017-11-07
  • 打赏
  • 举报
回复
引用 13 楼 Shurik 的回复:
是AL32UTF8和936 怎么设置NLS_LANG呀
先echo下有没有设置NLS_LANG变量吧,没值的话,去注册表设置也可以: cmd——>regedit——>搜索“NLS_LANG”,应该就有了,修改之~
加载更多回复(14)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧