【发布时间】:2010-12-12 17:18:18
【问题描述】:
类似 question,但适用于 Oracle。
为什么我不想总是选择 VARCHAR(MAX)?
【问题讨论】:
类似 question,但适用于 Oracle。
为什么我不想总是选择 VARCHAR(MAX)?
【问题讨论】:
因为它在 Oracle 中不起作用!如果您愿意,可以将所有列声明为 VARCHAR2(4000),但无论如何都不建议这样做。数据库的存储或性能不会有任何差异,但是:
【讨论】:
可能是因为Oracle不支持VARCHAR(MAX)。
VARCHAR 根本不应该在Oracle 中使用。
目前,它是VARCHAR2 的同义词,但将来可能会发生变化,以便区分空字符串和NULL。
VARCHAR 应该这样做,但在当前版本的Oracle 中没有,因此不应使用。
在Oracle 中,VARCHAR2 的最大长度为SQL 中的4000 和PL/SQL 中的32767。
对于较大的值,您应该使用CLOB,但它与VARCHAR2 有很大不同。您应该使用特殊的方法来访问它等。
【讨论】:
VARCHAR2 数据类型来存储可变长度字符串。不同意使用说明书并不是最明智的做法,但当然这是您的选择。如果您想构建一个可能在下次升级时中断的Oracle 应用程序,那么使用VARCHAR 绝对是一种方法。
【讨论】: