2010-09-10 75 views
6

我需要在表格的列中存儲(大)SQL查詢,並且我認爲使用BLOB字段。要清楚,我想存儲查詢,而不是結果。Oracle BLOB vs VARCHAR

什麼是最好的使用:BLOBVARCHAR?或者別的什麼可能?

回答

9

如果您要存儲不適合VarChar2的文本數據,那麼我認爲您應該使用CLOB

來自OraFaq的報價:* CLOB(字符大對象)是一種Oracle數據類型,最多可容納4 GB的數據。 CLOB的存儲文本非常方便。 *

+0

是的,我覺得我的文字將不適合用VARCHAR。感謝您的解釋。 – 2010-09-10 09:47:17

2

它們都是不同的。

您可以使用BLOB來存儲二進制數據,如圖像,音頻和其他多媒體數據。

VARCHAR用於存儲任何大小的文本,直到極限。

8

另一種選擇是CLOB。對於文本數據,使用CLOB比BLOB更合乎邏輯。即使您不必分析數據庫中的數據,使用CLOB仍然有意義,因爲即使查看數據也更容易。

某些功能只能使用VARCHAR。例如,您只能在VARCHAR列上創建索引(我不是在這裏討論全文索引,我知道您可以在CLOB列上創建全文索引)。你不能有一個CLOB或BLOB主鍵(我想你不需要這個;就像一個例子)。

大多數VARCHAR操作比CLOB/BLOB操作快得多。即使使用VARCHAR讀取數據也會更快(除非列中有很多文本)。 VARCHAR需要較少的內存開銷,但它們通常會在內存中完全讀取,因此最後VARCHAR可能仍會使用更多內存。

+0

這是最好的答案,因爲它解釋了varchar和clob列之間的功能和性能差異。 – Anomaly 2017-11-20 17:54:15

8

短串→VARCHAR

長字符串→CLOB

二進制數據→BLOB