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