Oracle中的VARCHAR(MAX)与VARCHAR(n)

时间:2009-11-03 16:47:50

标签: sql oracle plsql types

类似question,但对于Oracle。

为什么我不总是想选择VARCHAR(MAX)?

3 个答案:

答案 0 :(得分:8)

因为它在Oracle中不起作用!如果需要,可以将所有列声明为VARCHAR2(4000),但不建议以任何方式使用。数据库的存储或性能没有区别,但是:

  • 您对可以存储在列
  • 中的合理值失去约束
  • 一些客户端应用程序将分配4000字节的内存来接收来自列的数据(例如)10将会包含所有内容。

答案 1 :(得分:6)

可能是因为Oracle不支持VARCHAR(MAX)

VARCHAR根本不应在Oracle中使用。

就目前而言,它是VARCHAR2的同义词,但它可能在将来发生变化,以便区分空字符串和NULL

VARCHAR应该这样做,但在当前版本的Oracle中不会这样做,因此不应该使用。

Oracle中,VARCHAR2的最大长度为4000中的SQL32767中的PL/SQL

对于较大的值,您应该使用CLOB,但它与VARCHAR2非常不同。您应该使用特殊方法来访问它等。

答案 2 :(得分:3)

对于初学者,Oracle不拥有 VARCHAR(MAX)数据类型

参考: