Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MS T-SQL是否包含名为varchar2的数据类型?如果是,什么';它和varchar的区别是什么?_Sql_Oracle - Fatal编程技术网

MS T-SQL是否包含名为varchar2的数据类型?如果是,什么';它和varchar的区别是什么?

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是一种

我在采访中问过这个问题

No.
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实施前的差异(如果有-主体上没有主要来源)的组合造成的。原始答案已相应更新。谢谢你指出这一点。