Ansicht
Dokumentation

ABENLOGEXP_CHARACTER - LOGEXP CHARACTER

ABENLOGEXP_CHARACTER - LOGEXP CHARACTER

PERFORM Short Reference   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Vergleichstyp zeichenartiger Datenobjekte

Die folgenden Tabellen zeigen die Vergleichstypen für Vergleiche zwischen zeichenartigen Datentypen und anderen Datentypen. Wenn der Typ eines Operanden ungleich dem Vergleichstyp ist, wird er in diesen konvertiert. Die Vergleichsregeln für die Vergleichstypen bestimmen, wie der Vergleich ausgeführt wird. If no comparison type is specified for a combination, no comparison is possible.

Vergleich mit numerischen Datentypen

- string, c, n
decfloat16, decfloat34 decfloat34
f f
p p
int8 int8
i, s, b i

Beispiel

Vergleiche eines numerischen Texts mit einer Integerzahl. Wenn numtext einen ungültigen Wert enthält, kommt es zu einer unbehandelbaren Ausnahme mit dem Laufzeitfehler CONVT_NO_NUMBER.

Vergleich mit zeichenartigen Datentypen

- string c n
string string string p
c string c p
n p p n

Längenanpassungen

  • Unterschiedlich lange Operanden vom Datentyp string sind immer ungleich. Falls der Inhalt der Operanden über die Länge des kürzeren Operanden übereinstimmt, ist der kürzere Operand kleiner als der längere. Ansonsten werden die überzähligen Stellen des längeren Felds rechts abgeschnitten und dann der Inhalt verglichen.
  • Bei Vergleichen zwischen zwei gleich langen Operanden vom Datentyp c wird über die gesamte Länge verglichen, d.h. schließende Leerzeichen werden berücksichtigt. Bei Vergleichen zwischen zwei unterschiedlich langen Operanden vom Datentyp c wird ein kürzeres Feld in das längere Feld konvertiert, wobei rechts mit Leerzeichen aufgefüllt wird.
  • Bei Vergleichen zwischen zwei Operanden vom Datentyp n wird ein kürzeres Feld in das längere Feld konvertiert, wobei links mit dem Zeichen "0" aufgefüllt wird.

Hinweis

Beim Vergleich zwischen Textfeldern vom Typ c und Textstrings vom Typ string ist zu beachten, dass bei der Konvertierung von c nach string schließende Leerzeichen nicht berücksichtigt werden, was zu unerwarteten Ergebnissen führen kann. Mit dem Konvertierungsoperator CONV können hier andere Vergleichstypen erzwungen werden (siehe dortiges Beispiel).

Beispiel

Im folgenden Vergleich ist der Vergleichstyp c und der Vergleich findet gemäß der binären Darstellung in der aktuellen Codepage statt. Für die meisten Codepages ist "a" größer als "Z". Siehe auch das Beispiel zu CONVERT TEXT.

Beispiel

Der folgende Vergleich ist falsch, was vermutlich etwas unerwartet ist. Der Rückgabewert von boolc ist vom Typ string und enthält ein Leerzeichen während die Konstante abap_false vom Typ c ist. Für den Vergleich wird der Wert von abap_false in einen leeren String konvertiert, da das enthaltene Leerzeichen nicht berücksichtigt wird.

Folgender Vergleich ist dagegen wahr, da der Rückgabewert von xsdbool den gleichen ABAP-Typ wie die Konstante abap_false hat.

Vergleich von Textstrings unterschiedlicher Länge

Vergleich mit byteartigen Datentypen

- string c n
xstring string string p
x string c p

Längenanpassungen

  • Bei Vergleichen zwischen Datentyp c auf der einen und x oder xstring auf der anderen Seite wird nach der Konvertierung des Felds vom Typ x nach c bzw. xstring nach string das kürzere Feld auf die Länge des längeren Felds gebracht, wobei rechts mit Leerzeichen aufgefüllt wird.
  • Bei Vergleichen zwischen Datentyp string auf der einen und x oder xstring auf der anderen Seite finden keine Längenanpassungen statt.

Der logische Ausdruck CONV xstring( 255 ) = 'FF' ist wahr.

Vergleich mit Datums-/Zeit-/Zeitstempeltypen

- string c n
d, t string c n
utclong utclong utclong -

Längenanpassungen

  • Bei Vergleichen zwischen Datentypen c, n oder string auf der einen und d auf der anderen Seite wird das längere Feld durch Abschneiden auf der rechten Seite auf die Länge des kürzeren Felds verkürzt, wenn dabei nur Leerzeichen abgeschnitten werden.
  • Bei Vergleichen zwischen Datentypen c oder n auf der einen und t auf der anderen Seite wird das längere Feld durch Abschneiden auf der rechten Seite auf die Länge des kürzeren Felds verkürzt, wenn dabei nur Leerzeichen oder Zeichen "0" abgeschnitten werden.
  • Bei Vergleichen zwischen Datentyp string und t finden keine Längenanpassungen statt.

Beispiel

Das Beispiel zeigt die Längenanpassung beim Vergleich eines Zeitfelds mit einer Zeichenkette. Beide Vergleiche sind wahr.

Der folgende Vergleich ist immer wahr. Das initiale Textstringliteral wird in den Initialwert eines Zeitstempelfelds konvertiert und dieser ist kleiner als jeder echte Zeitstempel.






CL_GUI_FRONTEND_SERVICES - Frontend Services   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9116 Date: 20240523 Time: 092649     sap01-206 ( 116 ms )