Ansicht
Dokumentation

ABENLOGEXP_RULES_OPERANDS_INCOMPA - LOGEXP RULES OPERANDS INCOMPA

ABENLOGEXP_RULES_OPERANDS_INCOMPA - LOGEXP RULES OPERANDS INCOMPA

rdisp/max_wprun_time - Maximum work process run time   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

log_exp - Vergleich inkompatibler elementarer Operanden

Wenn operand1 und operand2 elementare Datentypen haben und nicht kompatibel sind, wird ihr Inhalt nach folgenden Regeln konvertiert und dann verglichen:

Operanden gleicher Typen unterschiedlicher Länge

  • Bei Operanden vom Datentyp p unterschiedlicher Länge oder Nachkommastellen werden die Zahlenwerte verglichen. Bei unterschiedlichen Nachkommastellen wird der Operand mit weniger Nachkommastellen in ein internes Feld mit 31 Dezimalstellen und der gleichen Anzahl an Nachkommastellen wie der andere Operand konvertiert. Wenn die Summe aus vorhandenen Vorkommastellen und benötigten Nachkommastellen dabei größer als 31 ist, kommt es zu einem Überlauf mit entsprechendem Laufzeitfehler.
  • Bei Operanden vom Datentyp c wird das kürzere Feld durch das Auffüllen mit Leerzeichen von rechts auf die Länge des längeren Feldes gebracht und der Vergleich durchgeführt.
  • 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 bevor der Größenvergleich zeichenweise von links nach rechts durchgeführt wird.
  • Bei Operanden vom Datentyp n wird das kürzere Feld links mit Nullen aufgefüllt und so auf die Länge des längeren Feldes gebracht.
  • Bei Operanden vom Datentyp x wird das kürzere Feld rechts mit hexadezimalen Nullen aufgefüllt und so auf die Länge des längeren Feldes gebracht.
  • Unterschiedlich lange Operanden vom Datentyp xstring 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 Feldes rechts abgeschnitten, bevor der Größenvergleich byteweise von links nach rechts durchgeführt wird.

Operanden unterschiedlicher elementarer Typen

Haben die Operanden unterschiedliche Datentypen, finden Konvertierungen gemäß den Konvertierungstabellen nach folgender Hierarchie statt, wobei die Priorität von oben nach unten abnimmt:

  1. Hat einer der Operanden den numerischen Datentyp decfloat34 wird der andere Operand ebenfalls nach decfloat34 konvertiert.

  2. Hat einer der Operanden den numerischen Datentyp decfloat16 werden beide Operanden nach decfloat34 konvertiert.

  3. Hat einer der Operanden einen der numerischen Datentypen i (b, s), f oder p wird der andere Operand in den beteiligten numerischen Datentyp mit dem größten Wertebereich konvertiert, wobei der Wertebereich von Datentyp f größer als der von p und dieser größer als der von i ist (der Wertebereich von Datentyp i ist größer als der von s und dieser größer als der von b).

  4. Hat einer der Operanden den Datentyp d oder t und der andere Operand einen numerischen Datentyp (i, f, p), wird der Inhalt des Datums- bzw. Zeitfeldes in den numerischen Datentyp konvertiert.

  5. Hat einer der Operanden den Datentyp d oder t und der andere Operand einen zeichenartigen Datentyp außer d oder t (c, n, string), wird der Inhalt des Datums- bzw. Zeitfeldes ebenfalls zeichenartig behandelt. Hat einer der Operanden den Datentyp d und der andere den Datentyp t, kommt es zu einer unbehandelbaren Ausnahme.

  6. Hat einer der Operanden den Datentyp n und der andere den Datentyp c, string, x oder xstring, wird der Inhalt beider Operanden in den Datentyp p konvertiert.

  7. Hat einer der Operanden einen der Datentypen fixer Länge c oder x und der andere Operand einen der Datentypen variabler Länge string oder xstring, wird der Operand fixer Länge in den zugehörigen Datentyp variabler Länge konvertiert (c nach string, x nach xstring).

  8. Hat einer der Operanden einen byteartigen Typ (x, xstring) und der andere Operand einen zeichenartigen Typ (c, string), wird der Inhalt des Operanden mit byteartigem Typ in den entsprechenden zeichenartigen Datentyp konvertiert (x nach c, xstring nach string).

Hinweise

  • Wenn in einem Vergleich eine dezimale Gleitpunktzahl beteiligt ist, findet der Vergleich immer mit dem Typ decfloat34 statt.
  • Wenn es bei einer Konvertierung zwischen verschiedenen Datentypen zu einer Ausnahme kommt, ist diese in Vergleichen nie abfangbar sondern führt immer zu einem Laufzeitfehler.





Addresses (Business Address Services)   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6023 Date: 20240523 Time: 113746     sap01-206 ( 156 ms )