SAP Tipuri de date HANA: numerice, șir de caractere, zecimal
⚡ Rezumat inteligent
SAP Tipurile de date HANA definesc ce poate stoca fiecare coloană, acoperind clasificări de tip dată/oră, numerice, booleene, șiruri de caractere, binare, obiecte mari și multi-valoare, fiecare hartăping la un anumit tip de depozit de coloane.

În acest SAP Tutorial Tipuri de date HANA, vom învăța:
1) SAP Tipuri de date HANA - SAP Tipurile de date HANA includ Date Time, Tip de date numerice, Boolean, șir de caractere, tipuri de date binare etc.
2) SAP Identificatori HANA – Identificatori delimitați și identificatori nedelimitați
Tipuri de date în SAP HANA
In SAP Baza de date HANA, SQL Tipurile de date sunt după cum urmează:
| Clasificare | Subclasificare | Tip de date SQL | Tip magazin de coloană | Format implicit |
|---|---|---|---|---|
| Tipuri de date și ore | Data | DATA | CS_DAYDATE | „AAAA-LL-ZZ” |
| Timp | TIMP | CS_SECONDTIME | „HH24:MI:SS” | |
| A doua întâlnire | DATA A DOUA | CS_LONGDATE | „AAAA-LL-ZZ HH24:MI:SS” | |
| Timestamp-ul | TIMESTAMP-UL | CS_SECONDDATE | „AAAA-LL-ZZ HH24:MI:SS.FFn” | |
| Tipuri numerice | Mic întreg | TINYINT | CS_INT | Întreg fără semn pe 8 biți, interval de la 0 la 255 |
| Întregul mic | SMINTINT | CS_INT | Întreg cu semn pe 16 de biți, interval -32,768 până la 32,767 | |
| Întreg | INTEGER | CS_INT | Întreg cu semn pe 32 de biți, interval -2,147,483,648 până la 2,147,483,647 | |
| Număr întreg mare | BIGINT | CS_FIXED(18,0) | Întreg cu semn pe 64 de biți, interval -9,223,372,036,854,775,808 până la 9,223,372,036,854,775,807 | |
| Zecimal | DECIMAL(p,s) p-Precizie s- scară |
CS_FIXED(ps,s) | Precizia p poate varia de la 1 la 38. Scala s poate varia de la 0 la p pentru SAP Tip de date zecimal HANA. Dacă precizia și scara nu sunt specificate, DECIMAL devine un număr zecimal cu virgulă mobilă. |
|
| Decimală mică | MICĂ DECIMALĂ | CS_SDFLOAT | Este un număr zecimal cu virgulă mobilă. Precizia și scara ar trebui să fie în intervalul 1~16 pentru precizie și -369~368 pentru scară, în funcție de valoarea stocată. SMALLDECIMAL este acceptat numai pentru tabelul de stocare a coloanelor. | |
| Numar real | REAL | CS_FLOAT | număr în virgulă mobilă cu precizie unică pe 32 de biți | |
| Double Număr | DUBLA | CS_DOUBLE | un număr în virgulă mobilă de 64 de biți cu precizie dublă | |
| pluti | FLOAT(n) | CS_DOUBLE | Este un număr real pe 32 sau 64 de biți. Unde n specifică numărul de biți și ar trebui să fie în intervalul 1 și 53. | |
| boolean | boolean | BOOLEAN | CS_INT | ADEVĂRAT, FALS și NECUNOSCUT (NUL). |
| Șirul de caractere | Șir de caractere cu lungime variabilă | VARCHAR (n) | CS_STRING | Acest tip de date cu lungime de șir HANA este un șir de caractere cu lungime variabilă, unde „n” specifică lungimea maximă în octeți, iar aceasta este un număr întreg între 1 și 5000. |
| Caracter Unicode cu lungime variabilă | NVARCHAR(n) | CS_STRING | Șir de set de caractere Unicode de lungime variabilă, unde indică lungimea maximă în caractere și este un număr întreg între 1 și 5000 | |
| Caracter alfanumeric | ALPHANUM(n) | CS_ALPHANUM | Caractere alfanumerice cu lungime variabilă, unde n indică lungimea maximă și este un număr întreg între 1 și 127 | |
| text scurt | TEXT SCURT(n) | CS_STRING | Este un șir de caractere de lungime variabilă care oferă funcții de căutare text și căutare șir. Acest tip de date poate fi definit pentru tabele de stocare pe coloane, dar nu și pentru tabele de rânduri. | |
| Tipuri binare | Text binar | VARBINAR(n) | CS_RAW | Stocați date binare cu o lungime maximă specificată în octeți, unde n indică lungimea maximă și este un număr întreg între 1 și 5000. |
| Tipuri LOB (Tipuri de obiecte mari) | LOB binar | BLOB | CS_RAW | Cantități mari de date binare |
| Personaj LOB | CLOB | CS_STRING | Date cu caractere ASCII | |
| LOB de caractere Unicode | NCLOB | CS_STRING | Obiect cu caracter Unicode mare | |
| TEXT | TEXT | CS_STRING | Tipul de date TEXT oferă funcții de căutare text. Acest tip de date poate fi definit pentru tabelele de stocare pe coloană, dar nu și pentru tabelele de stocare de rânduri. | |
| Date text BINAR | BINTEXT | CS_STRING | Tipul de date BINTEXT este similar cu tipul de date TEXT și, prin urmare, acceptă funcții de căutare text, dar este posibil să inserați date binare. Acest tip de date poate fi definit pentru tabelele coloane, dar nu și pentru tabelele cu rânduri. | |
| Tipuri cu mai multe valori | Mulțime | TABEL | Stochează colecții de valori de același tip de date în care fiecare element este asociat cu exact o poziție. Matricele pot conține valori NULL ca în absența unei valori. |
Alegerea dreptului SAP Tip de date HANA
Tabelul de mai sus prezintă ce este disponibil. Alegerea corectă contează mai mult în SAP HANA decât într-o bază de date bazată pe disc, deoarece fiecare coloană se află în memorie, iar un tip supradimensionat consumă o resursă rară pe fiecare rând.
Patru reguli acoperă majoritatea deciziilor:
- Luați cel mai mic tip numeric care se potrivește. Un indicator de stare cu cinci valori posibile necesită un număr TINYINT, nu un număr întreg. Într-un tabel cu un miliard de rânduri, diferența este măsurată în gigaocteți de memorie.
- Nu depozitați niciodată bani în MONEDĂ REALĂ sau DUBLA. Fracțiile zecimale cu virgulă mobilă nu pot fi reprezentate exact, așadar totalurile variază cu fracțiile unei unități monetare. Folosiți DECIMAL cu o precizie și o scală explicite.
- Prefer NVARCHAR în locul VARCHAR. VARCHAR numără octeții, iar NVARCHAR numără caracterele, astfel încât orice text non-ASCII se trunchiază în mod neașteptat în VARCHAR. Modern SAP Versiunile HANA tratează VARCHAR ca NVARCHAR exact din acest motiv.
- Potriviți precizia datei cu cerința. DATE pentru o zi calendaristică, SECONDDATE unde ora din zi contează și TIMESTAMP doar acolo unde se folosește cu adevărat o precizie sub o secundă. Fiecare pas înainte costă spațiu de stocare pe fiecare rând.
Tipurile de obiecte mari merită o atenție deosebită. O coloană BLOB sau NCLOB este convenabilă, dar greoaie, iar căutarea de text pe TEXT sau SHORTTEXT funcționează numai pe tabelele de stocare pe coloane, astfel încât alegerea de stocare și alegerea tipului de date sunt legate. Opțiunile de stocare sunt prezentate în SAP HANA SQL tutorial.
SAP Identificatori HANA
Identificatorii sunt folosiți pentru a reprezenta numele în SQL instrucțiune (de exemplu, numele tabelului, numele vizualizării, numele coloanei, numele indexului, numele sinonimului, numele procedurii, numele funcției etc.)
Există două tipuri de identificatori în SAP HANA: identificatori delimitați și identificatori nedelimitați.
- Identificatori delimitați – este inclusă în delimitator, Double Citate "". Identificatorul poate conține orice caracter, inclusiv caracterul special.
- Identificatori nedelimitați – Identificatorii nedelimitați (numele tabelului, numele coloanei) trebuie să înceapă cu o literă și nu pot conține alte simboluri decât o cifră sau un caracter de subliniere „_”.
Există două tipuri de ghilimele pentru delimitarea după cum urmează-
- Ghilimele simple (' ') – Este folosit pentru a delimita șirul.
- Double Ghilimele (" ")– Este folosit pentru delimitarea identificatorilor.
⚠️ Atenție: Un identificator nelimitat este convertit în majuscule atunci când obiectul este creat. Crearea unui tabel ca angajat și selectarea ulterioară a opțiunii „angajat” cu litere mici eșuează, deoarece numele stocat este ANGAJAT. Evitați complet ghilimelele duble sau folosiți-le în mod consecvent.
Conversia tipurilor de date și erorile comune
SAP HANA convertește automat între tipuri compatibile, dar conversia implicită este sursa discretă a rezultatelor greșite și a interogărilor lente. Conversia explicită face ca intenția să fie vizibilă.
Două funcții fac treaba. CAST convertește o valoare într-un tip denumit, iar TO_DATE, TO_VARCHAR, TO_DECIMAL și funcțiile lor rude convertesc cu un șir de format opțional.
-- 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;
Patru erori explică majoritatea problemelor de conversie:
- Depășire numerică. Introducerea valorii 40000 într-un SMALLINT eșuează deoarece intervalul cu semn se oprește la 32,767. Mesajul denumește coloana în loc de valoarea, așadar verificați mai întâi definiția.
- Trunchierea șirurilor de caractere. Încărcarea textului mai lung decât lungimea declarată generează o eroare în loc să fie tăiat silențios. Numără caractere pentru NVARCHAR și octeți pentru VARCHAR.
- Format de dată nevalid. Transmiterea unui șir de caractere cu modelul greșit către TO_DATE eșuează. Furnizați întotdeauna masca de format în loc să vă bazați pe valoarea implicită a sesiunii.
- Conversie implicită într-o clauză WHERE. Compararea unei coloane de caractere cu un număr forțează o conversie pe fiecare rând, ceea ce împiedică o filtrare eficientă. Convertiți constanta în loc de coloană.
Simbolurile de comparație utilizate în aceste filtre sunt prezentate în SAP Operatori HANAși platforma mai largă din SAP Tutorial HANA serie.
