MS T-SQL是否包含名为varchar2的数据类型?如果是,什么';它和varchar的区别是什么?
我在采访中问过这个问题 No.MS T-SQL是否包含名为varchar2的数据类型?如果是,什么';它和varchar的区别是什么?,sql,oracle,Sql,Oracle,我在采访中问过这个问题 No.varchar2是一种Oracle数据类型,相当于它(以及TSQL)自己的varchar 澄清 Oracle的varchar和varchar2之间的区别似乎起源于何时。我找不到任何明确的参考资料,说明最初(在Oracle 7之前)的实现差异(如果有的话)到底是什么,因为这仍然存在。这足以说明,从那时起,这两个词实际上被当作同义词来对待。在第8版中,两者都得到了改进(最大尺寸从2k增加到4k)。请注意,TSQL的varchar可以存储8k。No.varchar2是一种
varchar2
是一种Oracle数据类型,相当于它(以及TSQL)自己的varchar
澄清
Oracle的
varchar
和varchar2
之间的区别似乎起源于何时。我找不到任何明确的参考资料,说明最初(在Oracle 7之前)的实现差异(如果有的话)到底是什么,因为这仍然存在。这足以说明,从那时起,这两个词实际上被当作同义词来对待。在第8版中,两者都得到了改进(最大尺寸从2k增加到4k)。请注意,TSQL的varchar
可以存储8k。No.varchar2
是一种Oracle数据类型,相当于它(以及TSQL)自己的varchar
澄清
Oracle的
varchar
和varchar2
之间的区别似乎起源于何时。我找不到任何明确的参考资料,说明最初(在Oracle 7之前)的实现差异(如果有的话)到底是什么,因为这仍然存在。这足以说明,从那时起,这两个词实际上被当作同义词来对待。在第8版中,两者都得到了改进(最大尺寸从2k增加到4k)。请注意,TSQL的varchar
可以存储8k。我从未听过Vlad建议使用varchar数据类型仅支持2k的数据。考虑到它们在8.1.7之后的每个版本中都是同义词(我还没有查看早期版本的文档),我觉得这很奇怪。弗拉德,你有推荐人吗
从
VARCHAR数据类型当前为
与VARCHAR2数据类型同义。
Oracle建议您使用
VARCHAR2而不是VARCHAR。在
将来,VARCHAR可能被定义为
单独的数据类型用于
可变长度字符串
比较不同的比较
语义学
由于Oracle早于SQL标准,Oracle中的某些比较语义与标准不匹配(例如比较NULL和空字符串)。从理论上讲,Oracle拥有VARCHAR数据类型,因此将来他们可以更改VARCHAR数据类型的比较语义,以匹配SQL标准,而不会影响使用VARCHAR2数据类型的应用程序的向后兼容性。我从未听过Vlad建议使用VARCHAR数据类型仅支持2k数据。考虑到它们在8.1.7之后的每个版本中都是同义词(我还没有查看早期版本的文档),我觉得这很奇怪。弗拉德,你有推荐人吗 从 VARCHAR数据类型当前为 与VARCHAR2数据类型同义。 Oracle建议您使用 VARCHAR2而不是VARCHAR。在 将来,VARCHAR可能被定义为 单独的数据类型用于 可变长度字符串 比较不同的比较 语义学
由于Oracle早于SQL标准,Oracle中的某些比较语义与标准不匹配(例如比较NULL和空字符串)。从理论上讲,Oracle拥有VARCHAR数据类型,因此将来他们可以更改VARCHAR数据类型的比较语义以匹配SQL标准,而不会影响使用VARCHAR2数据类型的应用程序的向后兼容性。伙计们,你应该在消息中而不是在标题中提问。好的,coldice。很抱歉,刚加入StackOverflow的你们仍然可以纠正:)伙计们,你们应该在留言中提问,而不是在标题中。好的,coldice。很抱歉,StackOverflow的新成员您仍然可以更正:)原始答案中存在一些混乱,源于我使用的次要来源,无法由主要来源确认。混淆可能是由于rel7至rel8变更和rel7实施前的差异(如果有-主体上没有主要来源)的组合造成的。原始答案已相应更新。谢谢你指出这一点。在最初的答案中有一些混乱,来源于我使用的次要来源,并且不能被主要来源确认。混淆可能是由于rel7至rel8变更和rel7实施前的差异(如果有-主体上没有主要来源)的组合造成的。原始答案已相应更新。谢谢你指出这一点。