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位空格,不知道这是不是有规律呢? 展开
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位空格,不知道这是不是有规律呢? 展开
展开全部
不是这样的,proc里取出的name也应当是[AB ],你可以length一下取出的name长度看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我等会儿装ORACLE试试,,
楼主所说的情况,,在mysql里确实是这样的,马上实验
楼主所说的情况,,在mysql里确实是这样的,马上实验
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
经过试验 我的想法和你的相同。这可能就属于oracle的内部机制问题了
我想可能不止oracle, 包括mysql,sqlserver所以关系数据库都应该有这个特性
有空再研究下。
我想可能不止oracle, 包括mysql,sqlserver所以关系数据库都应该有这个特性
有空再研究下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你仔细测一下 不存在你说的这个情况啊
版本是10GR2刚刚测的
版本是10GR2刚刚测的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询