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

时间:2012-09-24 10:03:40

标签: java sql database oracle spring-mvc

在我的Web应用程序中,我将一些Text消息保存在DB表(Oracle)的COLUMN中。早期VARCHAR2长度(最大长度)是(500 BYTE)。现在客户要求我将最大长度增加到4000个字符 是否可以在DB表的一列中保存4000个字符,或者我们是否需要将其保存为BLOB 哪个性能更好?
有人可以澄清这个吗?

3 个答案:

答案 0 :(得分:4)

您是否检查了CLOB。为了保存大文本,oracle建议使用CLOB。

  

CLOB(字符大对象)是可以容纳的Oracle数据类型   最多4 GB的数据。 CLOB用于存储文本。

答案 1 :(得分:4)

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

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

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

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

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

答案 2 :(得分:0)

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