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.

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:
- 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.
- 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.
- 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.
- 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 .
