Si estas necesitando almacenar contenidos de gran tamaño, tales como documentos o imágenes en una plataforma SAP HANA Database, debes pensar en los tipos de datos LObs (Large Objetcs), especialmente diseñados para este fin. Existen los siguientes tipos:
- BLOB: Datos binarios. Por ejemplo, imágenes. Para tablas con almacenamiento por filas y columnas.
- CLOB: Texto ASCII. Para tablas con almacenamiento por filas y columnas.
- NCLOB: Texto UNICODE. Para tablas con almacenamiento por filas y columnas.
- TEXT: Texto con características adicionales de búsqueda. Sólo para tablas columnares. Muchas funciones de cadenas no son aplicables a este tipo de dato.
- BINTEXT: Texto y datos binarios con características adicionales de búsqueda. Con similares restricciones al tipo TEXT. La definición de este tipo de dato genera una columna de tipo NCLOB.
- Nota: El tipo de dato VARBINARY, a pesar que puede almacenar hasta 5.000 bytes no es considerado un tipo LOB, por lo que se carga en memoria cuando se acceda sin ninguna restricción como las que se podrían aplicar con los LOBs híbridos, señalados en próxima entrada.
Restricciones de los tipos de datos LObs
- Un campo de un tipo LOB sólo puede tener un máximo de 2 GB. Hay alertas que permiten controlar esta situación (Check ID 450 – Tables with memory LOBs > 2 GB).
- Una columna LOB no puede ser utilizada con la cláusula ORDER BY, GROUP BY, SLECT DISTINC, SELECT con funciones de agregación, FROM como operando en joins.
- Una columna LOB no puede ser clave primaria
Tratamientos de cadena soportados
- LENGTH para los tipos CLOB, NCLOB y BLOB. Retorna el tamaño de campo LOB en bytes.
- SUBSTR para los tipos CLOB y NCLOB. Retorna una subcadena del campo LOB.
- Las clausulas LIKE y CONTAINS para los tipos CLOB y NCLOB.
- Cláusula IS NUL sólo para los tipos CLOB, NCLOB y BLOB.
Nota: Ver siguiente entrada sobre LOBs híbridos.
Referencia: SAP Note 2220627