oracle的char和varchar类型

oracle中字段:namechar(5)prefix_namevarchar(5)插入一条记录:name="AB"prefix_name="CD"然后select出这两... oracle中字段:
name char(5)
prefix_name varchar(5)
插入一条记录:
name="AB"
prefix_name="CD"
然后select出这两个字段,我理解char类型会自动添加空格,varchar类型不会自动添加空格,因此取出来的应该是:
name=[AB ]
prefix_name=[CD]

有个问题,我用proc里select出这两个字段,其中name=[AB],难道select出来的会自动删除空格,只是存入DB时才自动添加空格?

不知道这样理解对么?谢谢!
我用strlen(name)打印出的长度就是AB的长度2,并不是5啊?

很奇怪,我发现好像char取出来之后,比如char定义的长度是5,如果值只有1位,则用proc取出来会输出为:1+两个空格,即删除2个空格,如果char定义长度是10,该字段值为1位,则输出是:1位+7位空格,不知道这是不是有规律呢?
展开
 我来答
百度网友078908b
推荐于2018-03-15 · TA获得超过435个赞
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:174万
展开全部
varchar与char的区别就在于是否可变长度。
char(5)就是定义一个5个字符长度的字符串变量;实际输入字符长度不够5个时数据库自动补空格。
varchar(5)就是定义一个最长5个字符长度的字符串变量;实际输入字符长度不够5个时,数据库不会自动补全。
gorica
2010-03-05 · TA获得超过505个赞
知道小有建树答主
回答量:546
采纳率:0%
帮助的人:292万
展开全部
不是这样的,proc里取出的name也应当是[AB ],你可以length一下取出的name长度看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ba8fd4f
2010-03-05 · TA获得超过281个赞
知道小有建树答主
回答量:769
采纳率:0%
帮助的人:284万
展开全部
我等会儿装ORACLE试试,,

楼主所说的情况,,在mysql里确实是这样的,马上实验
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loveyurui
2010-03-04 · TA获得超过6556个赞
知道大有可为答主
回答量:2892
采纳率:33%
帮助的人:987万
展开全部
经过试验 我的想法和你的相同。这可能就属于oracle的内部机制问题了
我想可能不止oracle, 包括mysql,sqlserver所以关系数据库都应该有这个特性
有空再研究下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小汤圆2008
2010-03-05 · TA获得超过366个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:189万
展开全部
你仔细测一下 不存在你说的这个情况啊
版本是10GR2刚刚测的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式