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

Aar*_* Fi 3 sql oracle types plsql

类似的问题,但对于Oracle.

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

Ton*_*ews 8

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

  • 你失去了对可存储在列中的合理值的约束
  • 一些客户端应用程序将分配4000字节的内存来接收来自列的数据(例如)10将是它将包含的全部内容.


Qua*_*noi 6

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

VARCHAR根本不应该使用Oracle.

至于现在,它是它的同义词VARCHAR2,但它将来可能会改变,以便区分空字符串和a NULL.

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

Oracle,对于一个最大长度VARCHAR24000SQL32767PL/SQL.

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