SAP HANA-Datentypen: Numerisch, Zeichenfolge, Dezimal

โšก Intelligente Zusammenfassung

SAP Die HANA-Datentypen definieren, welche Daten in jeder Spalte gespeichert werden kรถnnen. Sie umfassen Datum/Uhrzeit, numerische Werte, boolesche Werte, Zeichenketten, Binรคrdaten, groรŸe Objekte und mehrwertige Datentypen.ping zu einem bestimmten Spaltenspeichertyp.

  • ๏ธ Datums- und Uhrzeittypen: DATUM, ZEIT, SEKUNDENDATUM und ZEITSTEMPEL unterscheiden sich durch die Genauigkeit, die sie beibehalten.
  • ๐Ÿ”ข Zahlenbereich: TINYINT bis BIGINT decken ganze Zahlen ab, wรคhrend DECIMAL, SMALLDECIMAL, REAL und DOUBLE Brรผche verarbeiten.
  • ๐Ÿ”ค Zeichenketten: VARCHAR speichert Bytes und NVARCHAR speichert Unicode-Zeichen, beide sind auf 5000 Zeichen begrenzt.
  • ๐Ÿ“ฆ GroรŸe Objekte: BLOB, CLOB, NCLOB, TEXT und BINTEXT speichern Daten, die zu groรŸ fรผr eine normale Spalte sind.
  • ๐Ÿ” Suche aktiviert: TEXT, BINTEXT und SHORTTEXT unterstรผtzen die Volltextsuche, jedoch nur in spaltenorientierten Tabellen.
  • โœ๏ธ Kennungen: Begrenzte Bezeichner stehen innerhalb von doppelten Anfรผhrungszeichen und akzeptieren beliebige Zeichen; nicht begrenzte Bezeichner mรผssen mit einem Buchstaben beginnen.
  • โ Zitierregel: Einfache Anfรผhrungszeichen begrenzen einen Zeichenkettenwert, doppelte Anfรผhrungszeichen begrenzen einen Bezeichner.

SAP HANA-Datentypen

In dieser SAP Im Tutorial zu HANA-Datentypen lernen wir:

1) SAP HANA-Datentypen - SAP Zu den HANA-Datentypen zรคhlen Datums- und Uhrzeitdaten, numerische Datentypen, Boolesche Datentypen, Zeichenfolgendatentypen, binรคre Datentypen usw.

2) SAP HANA-Bezeichner โ€“ Begrenzte Bezeichner und unbegrenzte Bezeichner

Datentypen in SAP HANA

In SAP HANA-Datenbank, SQL Die Datentypen sind wie folgt:

Klassifikation Unterklassifizierung SQL-Datentyp Spaltenspeichertyp Standardformat
Datums-/Uhrzeittypen Datum DATUM CS_DAYDATE โ€žJJJJ-MM-TTโ€œ
Zeit ZEIT- CS_SECONDTIME 'HH24:MI:SS'
Zweites Date ZWEITES DATUM CS_LONGDATE โ€žJJJJ-MM-TT HH24:MI:SSโ€œ
Zeitstempel TIMESTAMP CS_SECONDDATE 'JJJJ-MM-TT HH24:MI:SS.FFn'
Numerische Typen Winzige ganze Zahl WINZIG CS_INT 8-Bit-Ganzzahl ohne Vorzeichen, Bereich 0 bis 255
Kleine ganze Zahl KLEIN CS_INT 16-Bit-Ganzzahl mit Vorzeichen, Wertebereich -32,768 bis 32,767
ganze Zahl GANZE ZAHL CS_INT 32-Bit-Ganzzahl mit Vorzeichen, Wertebereich -2,147,483,648 bis 2,147,483,647
GroรŸe ganze Zahl GROSSARTIG CS_FIXED(18,0) 64-Bit-Ganzzahl mit Vorzeichen, Wertebereich -9,223,372,036,854,775,808 bis 9,223,372,036,854,775,807
Dezimal DEZIMAL(p,s)
p-Prรคzision
S-Skala
CS_FIXED(ps,s) Die Prรคzision p kann zwischen 1 und 38 liegen.
Die Skala s kann von 0 bis p reichen fรผr SAP HANA-Dezimaldatentyp.
Wenn Genauigkeit und Skalierung nicht angegeben sind, wird DECIMAL zu einer Gleitkomma-Dezimalzahl.
Kleine Dezimalzahl SMALLDECIMAL CS_SDFLOAT Es handelt sich um eine Gleitkomma-Dezimalzahl. Die Prรคzision und der MaรŸstab sollten je nach gespeichertem Wert im Bereich von 1 bis 16 fรผr die Prรคzision und -369 bis 368 fรผr den MaรŸstab liegen. SMALLDECIMAL wird nur fรผr die Spaltenspeichertabelle unterstรผtzt.
Reelle Zahl REAL CS_FLOAT 32-Bit-Gleitkommazahl mit einfacher Genauigkeit
Double Nummer DOPPELT CS_DOUBLE eine 64-Bit-Gleitkommazahl mit doppelter Genauigkeit
Schwimmer FLOAT(n) CS_DOUBLE Es handelt sich um eine 32-Bit- oder 64-Bit-Gleitkommazahl. Dabei gibt n die Anzahl der Bits an und muss im Bereich zwischen 1 und 53 liegen.
Boolean Boolean BOOLEAN CS_INT WAHR, FALSCH und UNBEKANNT (NULL).
Zeichenkette Zeichenfolge variabler Lรคnge VARCHAR (n) CS_STRING Dieser HANA-Stringlรคngen-Datentyp ist eine Zeichenkette variabler Lรคnge, wobei 'n' die maximale Lรคnge in Bytes angibt und es sich dabei um eine ganze Zahl zwischen 1 und 5000 handelt.
Unicode-Zeichen variabler Lรคnge NVARCHAR(n) CS_STRING Unicode-Zeichensatz-String variabler Lรคnge, wobei gibt die maximale Lรคnge in Zeichen an und ist eine Ganzzahl zwischen 1 und 5000
Alphanumerisches Zeichen ALPHANUM(n) CS_ALPHANUM Alphanumerische Zeichen variabler Lรคnge, wobei n die maximale Lรคnge angibt und eine Ganzzahl zwischen 1 und 127 ist
Kurzer Text KURZTEXT(n) CS_STRING Es handelt sich um eine Zeichenkette variabler Lรคnge, die Text- und Zeichenkettensuche ermรถglicht. Dieser Datentyp kann fรผr spaltenorientierte Tabellen, jedoch nicht fรผr zeilenorientierte Tabellen definiert werden.
Binรคre Typen Binรคrer Text VARBINARY(n) CS_RAW Speichern Sie Binรคrdaten mit einer angegebenen maximalen Lรคnge in Bytes, wobei n die maximale Lรคnge angibt und eine Ganzzahl zwischen 1 und 5000 ist.
LOB-Typen (groรŸe Objekttypen) Binรคrer LOB BLOB CS_RAW GroรŸe Mengen an Binรคrdaten
Charakter LOB CLOB CS_STRING ASCII-Zeichendaten
Unicode-Zeichen-LOB NCLOB CS_STRING GroรŸes Unicode-Zeichenobjekt
TEXT TEXT CS_STRING Der Datentyp TEXT bietet Textsuchfunktionen. Dieser Datentyp kann fรผr Spaltenspeichertabellen definiert werden, nicht jedoch fรผr Zeilenspeichertabellen.
BINร„RE Textdaten BINTEXT CS_STRING Der Datentyp BINTEXT รคhnelt dem Datentyp TEXT und unterstรผtzt daher Textsuchfunktionen, es ist jedoch mรถglich, Binรคrdaten einzufรผgen. Dieser Datentyp kann fรผr Spaltentabellen definiert werden, nicht jedoch fรผr Zeilentabellen.
Mehrwertige Typen Feld ARRAY Es speichert Sammlungen von Werten desselben Datentyps, wobei jedes Element genau einer Position zugeordnet ist. Arrays kรถnnen NULL-Werte enthalten, da kein Wert vorhanden ist.

Das richtige wรคhlen SAP HANA-Datentyp

Die obige Tabelle listet die verfรผgbaren Optionen auf. Eine gute Auswahl ist umso wichtiger. SAP HANA ist besser als eine festplattenbasierte Datenbank, da jede Spalte im Arbeitsspeicher liegt und ein รผberdimensionierter Datentyp in jeder Zeile eine knappe Ressource verbraucht.

Vier Regeln decken die meisten Entscheidungen ab:

  • Wรคhlen Sie die kleinste passende numerische Schriftart. Ein Statusflag mit fรผnf mรถglichen Werten benรถtigt TINYINT, nicht INTEGER. Bei einer Tabelle mit einer Milliarde Zeilen betrรคgt der Unterschied Gigabytes Speicherplatz.
  • Bewahren Sie Geld niemals in echtem oder doppeltem Bargeld auf. Gleitkommazahlen kรถnnen Dezimalbrรผche nicht exakt darstellen, daher weichen Summen um Bruchteile einer Wรคhrungseinheit ab. Verwenden Sie DECIMAL mit expliziter Genauigkeit und Skalierung.
  • NVARCHAR ist VARCHAR vorzuziehen. VARCHAR zรคhlt Bytes und NVARCHAR zรคhlt Zeichen, daher wird jeder Nicht-ASCII-Text in VARCHAR unerwartet abgeschnitten. Moderne SAP HANA-Releases behandeln VARCHAR aus genau diesem Grund als NVARCHAR.
  • Die Datumsgenauigkeit muss den Anforderungen entsprechen. DATE fรผr Kalendertage, SECONDDATE, wenn die Uhrzeit relevant ist, und TIMESTAMP nur dann, wenn tatsรคchlich eine Genauigkeit im Subsekundenbereich benรถtigt wird. Jede hรถhere Auflรถsung erfordert Speicherplatz in jeder Zeile.

GroรŸe Objekttypen erfordern besondere Vorsicht. Eine BLOB- oder NCLOB-Spalte ist zwar praktisch, aber ressourcenintensiv, und die Textsuche in TEXT- oder SHORTTEXT-Tabellen funktioniert nur in spaltenorientierten Tabellen. Daher hรคngen die Wahl des Speichers und des Datentyps zusammen. Speicheroptionen werden im Abschnitt โ€žโ€ฆโ€œ erlรคutert. SAP HANA SQL Tutorial.

SAP HANA-Bezeichner

Bezeichner werden zur Darstellung von Namen verwendet SQL Anweisung (z. B. Tabellenname, Ansichtsname, Spaltenname, Indexname, Synonymname, Prozedurname, Funktionsname usw.)

Es gibt zwei Arten von Identifikatoren SAP HANA: Begrenzte Bezeichner und unbegrenzte Bezeichner.

  • Begrenzte Bezeichner โ€“ Es ist im Trennzeichen eingeschlossen, Double Zitate "". Der Bezeichner kann jedes beliebige Zeichen, einschlieรŸlich Sonderzeichen, enthalten.
  • Unbegrenzte Bezeichner โ€“ Unbegrenzte Bezeichner (Tabellenname, Spaltenname) mรผssen mit einem Buchstaben beginnen und dรผrfen keine anderen Symbole als eine Ziffer oder einen Unterstrich โ€ž_โ€œ enthalten.

Es gibt zwei Arten von Anfรผhrungszeichen als Trennzeichen:

  • Einfaches Anfรผhrungszeichen (' ') โ€“ Es wird verwendet, um die Zeichenfolge zu begrenzen.
  • Double Anfรผhrungszeichen (" ")โ€“ Es dient zur Abgrenzung von Bezeichnern.

โš ๏ธ Warnung: Ein nicht durch ein Trennzeichen getrennter Bezeichner wird beim Erstellen des Objekts in GroรŸbuchstaben umgewandelt. Das Erstellen einer Tabelle namens โ€žemployeeโ€œ und die spรคtere Auswahl von Daten aus โ€žemployeeโ€œ in Kleinbuchstaben schlรคgt fehl, da der gespeicherte Name EMPLOYEE lautet. Vermeiden Sie entweder Anfรผhrungszeichen vollstรคndig oder verwenden Sie diese konsequent.

Datentypkonvertierung und hรคufige Fehler

SAP HANA konvertiert automatisch zwischen kompatiblen Datentypen, doch die implizite Konvertierung ist eine hรคufige Ursache fรผr falsche Ergebnisse und langsame Abfragen. Die explizite Konvertierung macht die beabsichtigte Konvertierung sichtbar.

Zwei Funktionen erledigen die Arbeit. CAST konvertiert einen Wert in einen benannten Datentyp, und TO_DATE, TO_VARCHAR, TO_DECIMAL und ihre Verwandten konvertieren mit einer optionalen Formatzeichenfolge.

-- Explicit conversion with CAST
SELECT CAST('1234' AS INTEGER) FROM DUMMY;

-- Conversion with an explicit format
SELECT TO_DATE('2026-07-21', 'YYYY-MM-DD') FROM DUMMY;

-- Number to string with fixed decimals
SELECT TO_DECIMAL(1234.5678, 10, 2) FROM DUMMY;

Vier Fehler sind fรผr die meisten Konvertierungsprobleme verantwortlich:

  1. Numerischer รœberlauf. Das Einfรผgen von 40000 in eine SMALLINT-Spalte schlรคgt fehl, da der vorzeichenbehaftete Bereich bei 32,767 endet. Die Fehlermeldung nennt die Spalte und nicht den Wert; รผberprรผfen Sie daher zuerst die Definition.
  2. Zeichenkettenkรผrzung. Das Laden von Text, der lรคnger als die angegebene Lรคnge ist, lรถst einen Fehler aus, anstatt ihn stillschweigend abzuschneiden. Zeichen werden anhand von NVARCHAR und Bytes anhand von VARCHAR gezรคhlt.
  3. Ungรผltiges Datumsformat. Die รœbergabe einer Zeichenkette mit dem falschen Format an TO_DATE schlรคgt fehl. Geben Sie immer die Formatmaske an, anstatt sich auf den Standardwert der Sitzung zu verlassen.
  4. Implizite Konvertierung in einer WHERE-Klausel. Der Vergleich einer Zeichenspalte mit einer Zahl erzwingt eine Konvertierung in jeder Zeile, was ein effizientes Filtern verhindert. Konvertieren Sie stattdessen die Konstante.

Die in diesen Filtern verwendeten Vergleichssymbole werden erlรคutert in SAP HANA-Operatorenund die breitere Plattform in der SAP HANA-Tutorial .

Hรคufig gestellte Fragen

VARCHAR misst seine GrรถรŸe in Bytes, NVARCHAR in Unicode-Zeichen. Fรผr Texte, die Nicht-ASCII-Zeichen enthalten kรถnnen, ist NVARCHAR die sicherere Wahl, da es nicht unerwartet abgeschnitten wird.

Verwenden Sie SECONDDATE, wenn eine Genauigkeit von Sekunden ausreicht, was fรผr die meisten Geschรคftsvorgรคnge gilt. TIMESTAMP fรผgt Sekundenbruchteile hinzu und benรถtigt mehr Speicherplatz pro Zeile in einer groรŸen Tabelle.

Ja. Durch die Profilierung einer Quelldatei werden tatsรคchliche Wertebereiche, Lรคngen und Formate ermittelt. Aus diesen Daten schlรคgt die KI fรผr jede Spalte den kleinsten sicheren Datentyp vor, anstatt eines รผberdimensionierten Standardwerts.

Ja. Der Vergleich der deklarierten Lรคngen mit den tatsรคchlich gespeicherten Werten hebt Spalten hervor, die verkleinert werden kรถnnten, was wichtig ist, da jede Spalte einer HANA-Tabelle im Speicher gehalten wird.

TEXT, BINTEXT und SHORTTEXT bieten Funktionen fรผr die Textsuche. Alle drei sind auf spaltenbasierte Tabellen beschrรคnkt und kรถnnen nicht fรผr zeilenbasierte Tabellen definiert werden.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: