与此问题类似,但是针对的是Oracle。
为什么我不总是想选择VARCHAR(MAX)?
因为它在Oracle中不起作用!如果您愿意,您可以将所有列声明为VARCHAR2(4000),但这绝非推荐做法。数据库的存储和性能不会有任何区别,但是:
Oracle
不支持VARCHAR(MAX)
。Oracle
中,根本不应该使用VARCHAR
。VARCHAR
是VARCHAR2
的同义词,但是未来可能会改变,以便区分空字符串和NULL
。
VARCHAR
应该可以做到这一点,但是在当前版本的Oracle
中却没有实现,因此不应该使用。Oracle
中,VARCHAR2
的最大长度为4000
(在SQL
中)和32767
(在PL/SQL
中)。CLOB
,但它与VARCHAR2
非常不同。需要使用特殊方法来访问它等等。VARCHAR2
数据类型存储可变长度的字符字符串。不同意说明书并不是明智的选择,但当然这是你的选择。如果您想构建一个可能在下次升级时出现问题的Oracle
应用程序,则使用VARCHAR
绝对是一种方法。 - Quassnoi