2010-09-10 43 views
6

Necesito almacenar una consulta SQL (grande) en una columna de una tabla y pensé usar un campo BLOB. Para ser claro, quiero almacenar la consulta, no su resultado.Oracle BLOB vs VARCHAR

¿Qué es lo mejor para usar: BLOB o VARCHAR? ¿O algo más tal vez?

Respuesta

9

Si va a almacenar datos de texto que no caben en un VarChar2, entonces creo que se supone que debe usar un CLOB.

Cita de OraFaq: * Un CLOB (Character Large Object) es un tipo de datos Oracle que puede contener hasta 4 GB de datos. Los CLOB son útiles para almacenar texto. *

+0

sí, creo que mi texto no cabe en un VARCHAR. Gracias por la explicación. –

2

Ambos son diferentes.

Utiliza BLOB para almacenar datos binarios como una imagen, audio y otros datos multimedia.

y VARCHAR para almacenar texto de cualquier tamaño hasta el límite.

8

Otra opción es CLOB. Para datos de texto, es más lógico usar CLOB que BLOB. Incluso si no tiene que analizar los datos dentro de la base de datos, aún podría tener sentido usar CLOB, porque incluso ver los datos es más fácil.

Algunas funciones solo están disponibles con VARCHAR. Por ejemplo, solo puede crear un índice en columnas VARCHAR (no estoy hablando de índice de texto completo aquí, sé que puede crear un índice de texto completo en una columna CLOB). No puede tener una clave primaria CLOB o BLOB (supongo que no la necesita, solo como ejemplo).

La mayoría de las operaciones VARCHAR son mucho más rápidas que las operaciones CLOB/BLOB. Incluso la lectura de datos es más rápida si usa VARCHAR (a menos que realmente haya mucho texto en la columna). VARCHAR necesita menos memoria por encima, pero generalmente se leerán completamente en la memoria, por lo que al final VARCHAR podría seguir utilizando más memoria.

+0

Esta es la mejor respuesta, ya que explica las características y las diferencias de rendimiento entre las columnas varchar y clob. – Anomaly

8

cadenas cortas → VARCHAR

cadenas largas → CLOB

datos binarios BLOB →