oracle varchar2(45)只能插入10个汉字,怎么回事?

nitaiyoucala 2010-10-15 11:07:36
oracle varchar2(45)只能插入10个汉字,怎么回事?
本来应该可以插入15个汉字的
...全文
706 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
gelyon 2010-10-15
  • 打赏
  • 举报
回复
是不是有空格之类的,length(栏位)看下你insert的数据长度
feixianxxx 2010-10-15
  • 打赏
  • 举报
回复
一眼望过去 就是一个字符占3字节。
hao1hao2hao3 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hao1hao2hao3 的回复:]
一个汉字占两个字节,应该可以插入22个汉字的,你具体是怎么操作的?
[/Quote]
纠正一下,结合#2的看法,刚才查了下资料。

这个其实和Oracle的配置是相关的,用以下语句查询:
select * from v$nls_parameters t where t.PARAMETER='NLS_CHARACTERSET';
可以查询到当前数据库的字符集,如果value=GB2312,那么一个汉字占用2个字节,如果value=AL32UTF8,那么一个汉字占用3个字节。


Linux中不同吗?
minitoy 2010-10-15
  • 打赏
  • 举报
回复
lengthb检查下长度.
xman_78tom 2010-10-15
  • 打赏
  • 举报
回复
建议用 utl_raw.cast_to_raw(c varchar2) 函数将字符转换为二进制检查一下。
心中的彩虹 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 nitaiyoucala 的回复:]
oracle varchar2(45)只能插入10个汉字,怎么回事?
本来应该可以插入15个汉字的
[/Quote]
linux 下是可以插入15个汉字
具体的操作 是否还有空格或者其他的字符
hao1hao2hao3 2010-10-15
  • 打赏
  • 举报
回复
一个汉字占两个字节,应该可以插入22个汉字的,你具体是怎么操作的?
ojuju10 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 nitaiyoucala 的回复:]
我數據庫有3個字段
第一個字段是varchar2(45)
第二個和第三個字段是varchar2(20)

在程序裏面這三個字段插入的都是同一個值 發現第二個和第三個字段的長度設短了
[/Quote]

晕,我也觉得很奇怪
心中的彩虹 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 nitaiyoucala 的回复:]
我數據庫有3個字段
第一個字段是varchar2(45)
第二個和第三個字段是varchar2(20)

在程序裏面這三個字段插入的都是同一個值 發現第二個和第三個字段的長度設短了
[/Quote]
呵呵
nitaiyoucala 2010-10-15
  • 打赏
  • 举报
回复
我數據庫有3個字段
第一個字段是varchar2(45)
第二個和第三個字段是varchar2(20)

在程序裏面這三個字段插入的都是同一個值 發現第二個和第三個字段的長度設短了
feifei_209 2010-10-15
  • 打赏
  • 举报
回复
是#5楼说的吗?
心中的彩虹 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 nitaiyoucala 的回复:]
謝謝 我知道了
[/Quote]
是什么原因
nitaiyoucala 2010-10-15
  • 打赏
  • 举报
回复
謝謝 我知道了

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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