Oracle BLOB vs VARCHAR

痴心易碎 提交于 2019-12-10 12:56:03

问题


I need to store a (large) SQL query in a column of a table and I thought using a BLOB field. To be clear, I want to store the query, not its result.

What's best to use: BLOB or a VARCHAR? Or something else maybe?


回答1:


If you're going to store text data that can't fit in a VarChar2 then I think you're supposed to use a CLOB.

Quote from OraFaq: *A CLOB (Character Large Object) is an Oracle data type that can hold up to 4 GB of data. CLOB's are handy for storing text. *




回答2:


Another option is CLOB. For text data it's more logical to use CLOB than BLOB. Even if you don't have to analyze the data within the database it might still make sense to use CLOB, because even viewing the data is easier.

Some features are only available using VARCHAR. For example, you can only create an index on VARCHAR columns (I'm not talking about fulltext index here, I know you can create a fulltext index on a CLOB column). You can't have a CLOB or BLOB primary key (I guess you don't need that; just as an example).

Most VARCHAR operations are much faster than CLOB / BLOB operations. Even reading data is faster if you use VARCHAR (unless there is really a lot of text in the column). VARCHAR needs less memory overhead, but they will usually be fully read in memory, so at the end VARCHAR might still use more memory.




回答3:


Short strings → VARCHAR

Long strings → CLOB

Binary data → BLOB




回答4:


They are both different.

You use BLOB to store binary data like an image, audio and other multimedia data.

and VARCHAR to store text of any size up to the limit.



来源:https://stackoverflow.com/questions/3683582/oracle-blob-vs-varchar

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!