3

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

4

3 回答 3

5

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

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

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

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

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

于 2012-09-24T10:20:12.427 回答
5

你检查过 CLOB吗?对于保存大文本,oracle 建议使用 CLOB。

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

于 2012-09-24T10:12:03.340 回答
0

如果你需要通过 sql 查询来搜索,它必须是 varchar2。否则 clob/blob 更好,因为它需要

于 2012-09-24T10:16:14.830 回答