SAP HANA adattípusok: numerikus, karakterlánc, tizedes
⚡ Okos összefoglaló
SAP A HANA adattípusok határozzák meg, hogy az egyes oszlopok mit tárolhatnak, beleértve a dátum-idő, numerikus, logikai, karakterlánc, bináris, nagy objektum és többértékű osztályozásokat, minden egyes leképezést.ping egy adott oszloptárolási típushoz.

Ebben SAP A HANA adattípusok oktatóanyagából megtanuljuk:
1) SAP HANA adattípusok - SAP A HANA adattípusok közé tartozik a dátum idő, a numerikus adattípus, a logikai érték, a karakterlánc, a bináris adattípusok stb.
2) SAP HANA azonosítók – Határozott azonosítók és határtalan azonosítók
Adattípusok be SAP HANNA
In SAP HANA adatbázis, SQL Az adattípusok a következők:
| Osztályozás | Alosztályozás | SQL adattípus | Oszloptároló típusa | Alapértelmezett formátum |
|---|---|---|---|---|
| Dátum és idő típusai | találka | DÁTUM | CS_DAYDATE | "ÉÉÉÉ-HH-NN" |
| Time | IDŐ | CS_SECONDTIME | "HH24:MI:SS" | |
| Második randevú | MÁSODIK DÁTUM | CS_LONGDATE | "ÉÉÉÉ-HH-NN HH24:MI:SS" | |
| Időbélyeg | IDŐBÉLYEG | CS_SECONDDATE | "ÉÉÉÉ-HH-NN HH24:MI:SS.FFn" | |
| Numerikus típusok | Apró egész szám | TINYINT | CS_INT | 8 bites előjel nélküli egész szám, tartomány: 0–255 |
| Kis egész szám | KICSIK | CS_INT | 16 bites előjeles egész szám, tartomány: -9 223 372 036 854 775 808 és 9 223 372 036 854 775 807 között | |
| Egész szám | EGÉSZ SZÁM | CS_INT | 32 bites előjeles egész szám, tartomány: -9 223 372 036 854 775 808 és 9 223 372 036 854 775 807 között | |
| Big Integer | BIGINT | CS_FIXED(18,0;XNUMX) | 64 bites előjeles egész szám, tartomány: -9 223 372 036 854 775 808 és 9 223 372 036 854 775 807 között | |
| Decimális | DECIMÁLIS(p,s) p-Precizitás s- skála |
CS_FIXED(ps,s) | A p pontosság 1 és 38 között lehet. Az s skála 0-tól p-ig terjedhet SAP HANA decimális adattípus. Ha a pontosság és a lépték nincs megadva, a DECIMAL lebegőpontos decimális szám lesz. |
|
| Kis tizedes | KISDECIMÁLIS | CS_SDFLOAT | Ez egy lebegőpontos decimális szám. A pontosság és a skála a precíziós 1-16, a skála -369-368 tartományon belül kell, hogy legyen, a tárolt értéktől függően. A SMALLDECIMAL csak oszloptároló táblázat esetén támogatott. | |
| Valós szám | IGAZI | CS_FLOAT | egyszeres pontosságú 32 bites lebegőpontos szám | |
| Double Szám | KETTŐS | CS_DOUBLE | dupla pontosságú 64 bites lebegőpontos szám | |
| Úszó | FLOAT(n) | CS_DOUBLE | Ez egy 32 bites vagy 64 bites valós szám. Ahol n a bitek számát jelöli, és 1 és 53 közötti tartományba kell esnie. | |
| logikai | logikai | BOOLAI | CS_INT | IGAZ, HAMIS ÉS ISMERETLEN (NULL). |
| Karakter karakterlánc | Változó hosszúságú karaktersorozat | VARCHAR (n) | CS_STRING | Ez a HANA karakterlánchossz adattípus egy változó hosszúságú karakterlánc, ahol az „n” a maximális hosszt adja meg bájtban, és ez egy 1 és 5000 közötti egész szám. |
| Változó hosszúságú Unicode karakter | NVARCHAR(n) | CS_STRING | Változó hosszúságú Unicode karakterkészlet, ahol a maximális hosszt jelzi karakterekben, és egy 1 és 5000 közötti egész szám | |
| Alfa-numerikus karakter | ALPHANUM(n) | CS_ALPHANUM | Változó hosszúságú alfanumerikus karakterek, ahol n a maximális hosszt jelöli, és egy 1 és 127 közötti egész szám | |
| rövid szöveg | RÖVIDSZÖVEG(n) | CS_STRING | Ez egy változó hosszúságú karakterlánc, amely szöveges és karakterlánc-keresési funkciókat biztosít. Ez az adattípus oszloptároló táblázatokhoz definiálható, sortároló táblázatokhoz nem. | |
| Bináris típusok | Bináris szöveg | VARBINÁRIS(n) | CS_RAW | A megadott maximális hosszúságú bináris adatok tárolása bájtokban, ahol n a maximális hosszt jelöli, és egy 1 és 5000 közötti egész szám. |
| LOB-típusok (nagy objektumtípusok) | Bináris LOB | FOLT | CS_RAW | Nagy mennyiségű bináris adat |
| Karakter LOB | CLOB | CS_STRING | ASCII karakteradatok | |
| Unicode karakter LOB | NCLOB | CS_STRING | Nagy Unicode karakteres objektum | |
| TEXT | TEXT | CS_STRING | A SZÖVEG adattípus szöveges keresési funkciókat biztosít. Ez az adattípus definiálható az oszloptároló táblákhoz, de nem a sortároló táblákhoz. | |
| BINÁRIS szöveges adatok | BINTEXT | CS_STRING | A BINTEXT adattípus hasonló a TEXT adattípushoz, így támogatja a szöveges keresési funkciókat, de lehetséges bináris adatok beszúrása. Ez az adattípus oszloptáblázatokhoz definiálható, sortáblázatokhoz viszont nem. | |
| Többértékű típusok | Sor | SOR | Azonos adattípusú értékek gyűjteményeit tárolja, ahol minden elem pontosan egy pozícióhoz kapcsolódik. A tömbök NULL értékeket tartalmazhatnak, mint érték hiányában. |
A Jobb választása SAP HANA adattípus
A fenti táblázat felsorolja, mi áll rendelkezésre. A jó választás fontosabb a következőkben. SAP HANA-ban, mint egy lemez alapú adatbázisban, mivel minden oszlop a memóriában található, és egy túlméretezett típus minden sorban szűkös erőforrást fogyaszt.
Négy szabály vonatkozik a legtöbb döntésre:
- Vegyük a legkisebb illeszkedő számtípust. Egy öt lehetséges értékkel rendelkező állapotjelzőhöz TINYINT, nem INTEGER szükséges. Egy milliárd soros táblázatban a különbséget gigabájt memóriában mérjük.
- Soha ne tárolj pénzt VALÓDI vagy DUPLA PÉNZTÁRBAN. A lebegőpontos számok nem képesek pontosan decimális törteket ábrázolni, így az összegek a pénznem törtjeinek megfelelő mértékben változnak. Használjon DECIMAL függvényt explicit pontossággal és skálával.
- Az NVARCHAR-t részesítsd előnyben a VARCHAR-ral szemben. A VARCHAR a bájtokat, az NVARCHAR pedig a karaktereket számolja, így minden nem ASCII szöveg váratlanul csonkolódik a VARCHAR-ban. Modern SAP A HANA kiadások pontosan emiatt kezelik a VARCHAR-t NVARCHAR-ként.
- A dátum pontosságát illessze a követelményhez. A DATE egy naptári naphoz, a SECONDDATE ahol a napszak számít, és a TIMESTAMP csak ott, ahol valóban másodpercnél kisebb pontosságot használnak. Minden egyes lépés tárhelyet igényel minden sorban.
A nagy objektumtípusok különös figyelmet érdemelnek. A BLOB vagy NCLOB oszlop kényelmes, de nehézkes, és a TEXT vagy SHORTTEXT oszlopokban a szöveges keresés csak oszloptároló táblázatokon működik, így a tárolási választás és az adattípus kiválasztása összefügg. A tárolási lehetőségeket a következő részben tárgyaljuk: SAP HANA SQL tutorial.
SAP HANA azonosítók
Az azonosítók a név megjelenítésére szolgálnak SQL utasítás (pl. táblanév, nézetnév, oszlopnév, indexnév, szinonimnév, eljárásnév, függvénynév stb.)
Kétféle azonosító létezik SAP HANNA: Elválasztott azonosítók és Korlátlan azonosítók.
- Elhatárolt azonosítók – Határolóba van zárva, Double Idézetek "". Az azonosító bármilyen karaktert tartalmazhat, beleértve a speciális karaktereket is.
- Korlátlan azonosítók – A korlátlan azonosítóknak (táblanév, oszlopnév) betűvel kell kezdődniük, és nem tartalmazhatnak más szimbólumokat, mint egy számjegyet vagy egy aláhúzásjelet „_”.
Kétféle idézőjel van az elhatároláshoz, az alábbiak szerint
- Egyetlen idézőjel ('') – A karakterlánc elhatárolására szolgál.
- Double Idéző jel (" ")– Az azonosítók elválasztására szolgál.
⚠️ Figyelmeztetés: Egy korlátlan azonosító nagybetűsre konvertálódik az objektum létrehozásakor. Ha egy táblát alkalmazottként hoz létre, majd később kisbetűs „alkalmazott”-ként választ ki, az sikertelen, mivel a tárolt név ALKALMAZOTT. Vagy teljesen kerülje el a dupla idézőjeleket, vagy használja azokat következetesen.
Adattípus-konverzió és gyakori hibák
SAP A HANA automatikusan konvertál a kompatibilis típusok között, de az implicit konverzió a helytelen eredmények és a lassú lekérdezések csendes forrása. Az explicit konverzió láthatóvá teszi a szándékot.
Két függvény végzi el a munkát. A CAST egy értéket névvel ellátott típussá alakít, a TO_DATE, TO_VARCHAR, TO_DECIMAL és rokonaik pedig egy opcionális formázó karakterlánccal konvertálják.
-- 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;
Négy hiba okozza a legtöbb konverziós problémát:
- Numerikus túlcsordulás. A 40000 beszúrása egy SMALLINT függvénybe sikertelen, mert az előjeles tartomány 32 767-nél megáll. Az üzenet az oszlopot nevezi meg az érték helyett, ezért először ellenőrizze a definíciót.
- Karakterlánc csonkítása. A deklarált hosszúságnál hosszabb szöveg betöltése hibát okoz ahelyett, hogy csendben elvágná azt. Számolja a karaktereket az NVARCHAR, a bájtokat pedig a VARCHAR függvényében.
- Érvénytelen dátumformátum. A TO_DATE függvénynek átadott karakterlánc hibás mintázatú átadása. Mindig a formátummaszkot kell megadni a munkamenet alapértelmezett értékének használata helyett.
- Implicit konverzió egy WHERE záradékban. Egy karakteres oszlop és egy szám összehasonlítása minden sorban konverziót kényszerít ki, ami megakadályozza a hatékony szűrést. Az oszlop helyett az állandót kell konvertálni.
Az ezekben a szűrőkben használt összehasonlító szimbólumokat a következő részben tárgyaljuk: SAP HANA operátorok, és a szélesebb platform a SAP HANA oktatóanyag sorozat.
