Oracle BLOB vs VARCHAR

时间:2010-09-10 09:40:24

标签: sql oracle types blob varchar

我需要在表的一列中存储(大)SQL查询,我想使用BLOB字段。要清楚,我想存储查询,而不是结果。

最好使用什么:BLOBVARCHAR?或者别的什么呢?

4 个答案:

答案 0 :(得分:11)

如果您要存储的文本数据不适合VarChar2,那么我认为您应该使用CLOB

来自OraFaq的引用:* CLOB(字符大对象)是一种Oracle数据类型,最多可容纳4 GB的数据。 CLOB用于存储文本很方便。 *

答案 1 :(得分:9)

另一个选择是CLOB。对于文本数据,使用CLOB比使用BLOB更合乎逻辑。即使您不必分析数据库中的数据,使用CLOB仍然有意义,因为即使查看数据也更容易。

某些功能仅可使用VARCHAR。例如,您只能在VARCHAR列上创建索引(我不是在谈论全文索引,我知道您可以在CLOB列上创建全文索引)。你不能拥有CLOB或BLOB主键(我想你不需要它;仅作为一个例子)。

大多数VARCHAR操作比CLOB / BLOB操作快得多。如果使用VARCHAR,即使读取数据也会更快(除非列中有很多文本)。 VARCHAR需要更少的内存开销,但它们通常会在内存中完全读取,因此最后VARCHAR可能仍会使用更多内存。

答案 2 :(得分:9)

短字符串→VARCHAR

长串→CLOB

二进制数据→BLOB

答案 3 :(得分:2)

它们都不同。

您使用BLOB存储二进制数据,如图像,音频和其他多媒体数据。

VARCHAR可存储任意大小的文字。