oracle sql - 在我的数据库表的一列中存储 4000 个字符

use*_*499 3 java sql database oracle spring-mvc

在我的 Web 应用程序中,我将一些文本消息保存在数据库表 (Oracle) 的列中。之前的 VARCHAR2 长度(最大长度)是 (500 BYTE)。现在客户要求我将最大长度增加到 4000 个字符。
是否可以在数据库表的一列中保存 4000 个字符,或者我们是否需要将其保存为 BLOB。
哪个性能更好?
任何人都可以澄清这一点吗?

tit*_*geo 5

你检查过CLOB吗?为了保存大文本 oracle 推荐 CLOB。

CLOB(字符大对象)是一种 Oracle 数据类型,最多可容纳 4 GB 的数据。CLOB 可以方便地存储文本。


a_h*_*ame 5

Oracle对一列的限制为 4000字节VARCHAR2并且无法解决该限制。

因此,VARCHAR2如果您使用的是单字节字符集,则一列中只能存储 4000字符。

如果您使用 UTF8 或任何其他多字节字符集,您可能无法存储 4000 个字符(因为某些字符需要超过一个字节)。定义列VARCHAR2(4000 Char)克服这个限制。

如果您确实在使用多字节字符集,则必须使用一CLOB列,否则无法存储 4000 个字符(如 gTito 所建议的那样)。

如果您使用的是单字节字符集,那么您可以避开一VARCHAR2(4000 Char)列。