SQL中varchar和varchar2的区别

Posted

技术标签:

【中文标题】SQL中varchar和varchar2的区别【英文标题】:Difference between varchar and varchar2 in SQL 【发布时间】:2011-04-25 13:14:13 【问题描述】:

SQL 中的 varchar 和 varchar2 有什么区别。请用一些好的例子详细说明。

【问题讨论】:

What is the difference between varchar and varchar2?的可能重复 【参考方案1】:

Varchar2 是 Oracle 特有的。

varchar2 最重要的非标准行为是空字符串 ('') 与 null 相同。

在标准 SQL 中,null 与任何字符串文字不同,甚至是空字符串。

【讨论】:

+1 可能值得一提的是,在 Oracle 中,一个条件测试 Field = '' 是否总是评估为 NULL(即永远不会为真),即使 Field 是 ''(即 NULL)。 @Mark:谢谢,这很好。而在标准 SQL 中,Field = '' 可能是真的。【参考方案2】:

它们的行为相同,但建议使用 varchar2:

目前 VARCHAR 的行为与 与 VARCHAR2 相同。然而,这种类型 不应使用,因为它是保留的 以备将来使用。

Source

【讨论】:

【参考方案3】:

DBA StackExchange 上的 Leigh Riffel 提供了我读过的关于 VARCHAR 和 VARCHAR2 之间区别的最详细和准确的概述:https://dba.stackexchange.com/a/1303

【讨论】:

以上是关于SQL中varchar和varchar2的区别的主要内容,如果未能解决你的问题,请参考以下文章

char varchar varchar2 的区别 (转)

varchar和varchar2的区别

MS T-SQL 是不是包含名为 varchar2 的数据类型?如果是这样,它和varchar之间有啥区别?

oracle 中 char 、varchar 、 varchar2 的区别以及他们的优劣,啥时候用?懂的来

Oracle LOB类型

关于数据库中char,varchar,varchar的区别