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.

  • Tipuri de dată și oră: DATE, TIME, SECONDDATE și TIMESTAMP diferă prin precizia pe care o păstrează.
  • 🔢 Interval numeric: De la TINYINT la BIGINT se ocupă de numere întregi, în timp ce DECIMAL, SMALLDECIMAL, REAL și DOUBLE se ocupă de fracții.
  • 🔤 Șiruri de caractere: VARCHAR conține octeți, iar NVARCHAR conține caractere Unicode, ambele limitate la 5000.
  • 📦 Obiecte mari: BLOB, CLOB, NCLOB, TEXT și BINTEXT stochează date prea mari pentru o coloană normală.
  • 🔍 Căutare activată: TEXT, BINTEXT și SHORTTEXT acceptă căutarea în text integral, dar numai în tabelele de tip „coloan store”.
  • ✍️ Identificatori: Identificatorii delimitați se află între ghilimele duble și acceptă orice caracter; cei nelimitați trebuie să înceapă cu o literă.
  • Regula citatelor: Aghilemele simple delimitează o valoare șir de caractere, iar ghilimelele duble delimitează un identificator.

SAP Tipuri de date HANA

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Întrebări frecvente

VARCHAR își măsoară limita în octeți, iar NVARCHAR în caractere Unicode. Pentru orice text care poate conține caractere non-ASCII, NVARCHAR este alegerea sigură, deoarece nu se va trunchia în mod neașteptat.

Folosește SECONDDATE atunci când precizia de nivel doi este suficientă, ceea ce acoperă majoritatea evenimentelor de business. TIMESTAMP adaugă fracții de secunde și costă mai mult spațiu de stocare pe fiecare rând al unui tabel mare.

Da. Profilarea unui fișier sursă dezvăluie intervale de valori reale, lungimi și formate, din care inteligența artificială propune cel mai mic tip sigur pentru fiecare coloană în loc de o valoare implicită supradimensionată defensivă.

Da. Compararea lungimilor declarate cu valorile stocate efectiv evidențiază coloanele care s-ar putea micșora, ceea ce este important deoarece fiecare coloană a unui tabel HANA este păstrată în memorie.

TEXT, BINTEXT și SHORTTEXT oferă funcții de căutare text. Toate trei sunt restricționate la tabelele de stocare pe coloane și nu pot fi definite într-un tabel de stocare pe rânduri.

Rezumați această postare cu: