Es kommt also erstmal drauf an, ob du den Text plain sehen willst oder ob du auch Binärdaten speichern darfst/kannst. Ich persönlich tendiere meist zu RAWSTRING. STRING in RAWSTRING und anders herum kannst du mit Hilfe von CL_ABAP_CONV_IN_CE und CL_ABAP_CONV_OUT_CE.LCHR
Beliebig lange Zeichenfolgen mit mindestens 256 Zeichen. Felder dieses Typs müssen bei transparenten Tabellen am Ende stehen und ein voranstehendes Längenfeld vom Typ INT2 besitzen. Beim INSERT oder UPDATE in ABAP-Programmen muß dieses Längenfeld mit der tatsächlich gewünschten Länge gefüllt werden. Felder dieses Typs können nicht in der WHERE-Bedingung eines SELECT-Statements verwendet werden.
LRAW
Beliebig lange uninterpretierte Byte-Folge mit Mindestlänge 256. Felder dieses Typs müssen bei transparenten Tabellen am Ende stehen und ein voranstehendes Längenfeld vom Typ INT2 besitzen. Beim INSERT oder UPDATE in ABAP-Programmen muß dieses Längenfeld mit der tatsächlich gewünschten Länge gefüllt werden. Felder dieses Typs können nicht in der WHERE-Bedingung eines SELECT-Statements verwendet werden.
RAWSTRING
Uninterpretierte Byte-Folge variabler Länge. Im Dictionary kann zu diesem Typ eine Länge (mindestens 256 Zeichen) angegeben werden. Dieser Datentyp kann in Typen (Datenelementen, Strukturen, Tabellentypen) und Domänen verwendet werden. Binärdaten vom Typ RAWSTRING können auf der Datenbank abgelegt werden. Hier gibt es allerdings Einschränkungen, die in den Ausführungen zum ABAP-Schlüsselwort 'STRING' beschrieben sind. String-Felder können nicht im Schlüssel von Tabellen, nicht in Indizes und nicht in der WHERE-Bedingung eines SELECT-Statements benutzt werden. Im ABAP wird der Dictionary-Typ RAWSTRING auf den ABAP-Typ XSTRING abgebildet, der als Referenz auf einen Speicherbereich variabler Größe realisiert ist.
STRING
Zeichenfolge mit variabler Länge. Im Dictionary kann zu diesem Typ eine Länge (mindestens 256 Zeichen) angegeben werden. Eine Verwendung in Datenbanktabellen ist möglich. Einschränkungen sind in den Ausführungen zum ABAP-Schlüsselwort 'STRING' beschrieben. String-Felder können nicht im Schlüssel von Tabellen, nicht in Indizes und nicht in der WHERE-Bedingung eines SELECT-Statements benutzt werden. Im ABAP wird der Dictionary-Typ STRING auf den ABAP-Typ STRING abgebildet, der als Referenz auf einen Speicherbereich variabler Größe realisiert ist.
Du brauchst also dann wohl 3 Tabellen, die du miteinander verknüpfst. Alternativ könnte es vielleicht Sinn machen (je nach erwarteter Datenmenge), die Tabelle quasi zu transponieren, also sowas:Symptom
Die Aktivierung einer Tabelle mit mehr als drei LOB-Spalten scheitert.
Eine LOB-Spalte hat den Dictionary-Datentyp STRING oder RAWSTRING.
Ursache und Voraussetzungen
Für die von SAP unterstützten Datenbankplattformen wird eine gemeinsame Obergrenze der Anzahl an LOB-Spalten in einer Tabelle eingehalten. Diese Obergrenze war ursprünglich bis zu 3 LOB-Spalten je Tabelle.
In neueren Releases wurde die Grenze auf 16 LOB-Spalten je Tabelle erhöht. Diese Erhöhung wurde dann auch für neuere Support Packages der Releases SAP_BASIS 7.0 und SAP_BASIS 7.0 EHP1 möglich.
Beachten Sie, daß eine Tabelle mit mehr als 3 LOB-Spalten nur in SAP-Systeme transportiert werden kann, die ebenfalls zumindest die in diesem Hinweis genannten Support Packages oder eines der Nachfolgereleases nutzen.