Sql Oracle中的VARCHAR(MAX)与VARCHAR(n)
类似,但对甲骨文而言Sql Oracle中的VARCHAR(MAX)与VARCHAR(n),sql,oracle,plsql,types,Sql,Oracle,Plsql,Types,类似,但对甲骨文而言 为什么我不总是想选择VARCHAR(MAX)?可能是因为Oracle不支持VARCHAR(MAX) VARCHAR不应在Oracle中使用 就目前而言,它是VARCHAR2的同义词,但将来可能会更改,以便区分空字符串和NULL VARCHAR应该这样做,但在当前版本的Oracle中没有,因此不应使用 在Oracle中,VARCHAR2在SQL中的最大长度为4000,在PL/SQL中的最大长度为32767 对于较大的值,应该使用CLOB,但它与VARCHAR2非常不同。您应该
为什么我不总是想选择VARCHAR(MAX)?可能是因为
Oracle
不支持VARCHAR(MAX)
VARCHAR
不应在Oracle
中使用
就目前而言,它是VARCHAR2
的同义词,但将来可能会更改,以便区分空字符串和NULL
VARCHAR
应该这样做,但在当前版本的Oracle
中没有,因此不应使用
在Oracle
中,VARCHAR2
在SQL
中的最大长度为4000
,在PL/SQL
中的最大长度为32767
对于较大的值,应该使用
CLOB
,但它与VARCHAR2
非常不同。您应该使用特殊的方法来访问它,等等。因为它在Oracle中不起作用!如果需要,可以将所有列声明为VARCHAR2(4000),但无论如何都不建议这样做。数据库的存储或性能不会有差异,但:
- 您失去了对可存储在列中的合理值的约束
- 一些客户端应用程序将分配4000字节的内存来接收来自该列的数据,而(比如)该列只包含10个字节
VARCHAR2
数据类型来存储可变长度字符串。不同意使用说明书不是最明智的做法,但这当然是你的选择。如果您想构建一个可能在下一次升级时崩溃的Oracle
应用程序,那么使用VARCHAR
无疑是一个不错的选择。