# Was sind CLOBs (Character Large Objects)?

Normalerweise gehen **Datenbanken** beim Speichern von Daten wie folgt vor: Einzelne Tabellenspalten werden zu Zeilen zusammengefasst, die wiederum zu Datenblöcken gestapelt werden. In jedem **Datenblock ist dann einer Zeile eine bestimmte Information zugeordnet**. Das Speichern von Datenblöcken verbraucht in dieser Form wenig Speicherplatz in der Datenbank.

Besonders große Datenobjekte werden von Datenbanken allerdings anders behandelt. Diese sogenannten **Large Objects (LOBs)** sind im Vergleich zu gewöhnlichen Datenbankeinträgen wesentlich größer, zudem unstrukturiert und erhalten daher in den meisten Fällen einen separaten Speicherort. Die Datenbank führt dann an entsprechender Stelle lediglich eine Referenz zum tatsächlichen Speicherort des Objekts.

LOBs existieren in zwei Typen, den BLOBs und den CLOBs. Ein [BLOB](https://www.ionos.at/digitalguide/websites/web-entwicklung/binary-large-object-blob/ "Binary Large Object (BLOB)") ist ein Datentyp, der große Objekte binärer Form speichert, wohingegen das **CLOB-Dateiformat lange Zeichenketten speichert**. Die Abkürzung steht dabei für **C**haracter **L**arge **Ob**jects (dt. große Objekte mit Zeichen), wobei der Begriff durch die Entwickler der Oracle-Datenbank geprägt wurde. In anderen Datenbanksystemen existieren nämlich auch alternative Bezeichnungen für die großen Objekte wie zum Beispiel TEXT in [MySQL](https://www.ionos.at/digitalguide/server/knowhow/mysql-lernen-leicht-gemacht/ "MySQL-Lernen leicht gemacht") und [PostgreSQL](https://www.ionos.at/digitalguide/server/knowhow/postgresql/ "PostgreSQL").

## Wie funktionieren CLOBs und wofür werden sie eingesetzt?

Als **Character Large Objects** lassen sich sämtliche Datenbankobjekte mit Zeichenketten einordnen – mit anderen Worten also alle Objekte, die Dateien enthalten, die sich aus Zeichen zusammensetzen. Zeichenketten sind Abfolgen von Buchstaben, Ziffern, Sonderzeichen und Steuerzeichen, weshalb **CLOB-Einträge** für gewöhnlich auf Text-Dokumente (insbesondere XML) verweisen. Das Besondere an der Speicherung dieser großen Datentypen ist, dass sie bis auf bestimmte Ausnahmen nicht direkt in der Datenbank, sondern **an separater Stelle gespeichert** werden. Im Datenbanksystem selbst befindet sich lediglich ein **Referenzmechanismus**, der auf den jeweiligen CLOB verweist. So steht in einer Datenbankzeile beispielsweise nicht der gesamte Zeichencode einer Website, sondern lediglich eine Referenznummer, die auf den tatsächlichen Speicherort des zugrundeliegenden HTML-Dokuments verweist.

## Vor- und Nachteile der CLOB-Speicherung

Einer der größten **Vorteile** des Datentyps CLOB ist die Möglichkeit, **Lese- und Bearbeitungsvorgänge** an den einzelnen Dateien vorzunehmen. Zum Beispiel können Datenbankadministratoren mit Hilfe von Anwendungsprogrammen den Inhalt eingespeister Character Large Objects vergleichen, editieren oder zusammenführen. Eine kurze Übersicht der Bearbeitungsmöglichkeiten folgt hier:

- **SUBSTR** erlaubt Anwendern, Zeichensequenzen aus einem CLOB zu extrahieren
- **INSTR** fügt ausgeschnittene Zeichenfolgen an anderer Stelle oder in anderen CLOBs ein
- **COMPARE** vergleicht die Werte zweier CLOBs
- **APPEND** verbindet zwei CLOBs miteinander

Da **CLOBs die Dokumente mit Text bzw. Zeichen komplett abspeichern**, lassen sich deren Inhalte sehr genau prüfen. Administratoren können exakt feststellen, ob sich Inhalte doppeln oder Textteile überschneiden. Ist dies der Fall, können die Datensätze verbunden werden, um unnötig verwendeten Speicherplatz freizugeben.

Zudem ist die Speicherung von Buchstaben, Ziffern, Sonderzeichen und Steuerzeichen als CLOB **absolut verlustfrei**: Oft kommt es beim Speichern darauf an, dass wirklich alle Informationen eines Dokuments gespeichert werden müssen, was bei diesem Datenformat kein Problem darstellt. Man kann zum Beispiel auch die Metainformationen eines Dokuments zusammen mit dem tatsächlichen Inhalt als CLOB speichern. Die meisten Datenbanken unterstützen in der Folge sogar die Darstellung der Character Large Objects in einer Baumstruktur sowie die Navigation und das Finden spezifischer Bestandteile.

Zu den **Nachteilen** dieses Datentyps zur Speicherung enorm großer Zeichenmengen zählt, dass einige Datenbanken **nicht die Bearbeitung über die bekannten SQL-Funktionen** ermöglichen. Da die CLOBs extrem große Textmengen speichern, würde die Ausführung der Standardfunktionen nämlich sehr lange dauern. Hier stehen aber zumindest die zuvor erwähnten Anwendungskommandos SUBSTR, INSTR, COMPARE und APPEND als alternative Möglichkeiten zur Verfügung, um nicht funktionale SQL-Operationen zu replizieren. Ein weiterer Nachteil von CLOBs: **Verhältnismäßig kleine Datenelemente vergeuden wertvollen Speicherplatz**, da für die Speicherung außerhalb der Datenbank ein fest definierter, segmentierter Speicherplatz reserviert wird.


This is a markdown version of: [https://www.ionos.at/digitalguide/websites/web-entwicklung/character-large-object-clob/](https://www.ionos.at/digitalguide/websites/web-entwicklung/character-large-object-clob/) for AI/LLM consumption.