SAP HANA tipovi podataka: numerički, znakovni niz, decimalni
⚡ Pametni sažetak
SAP HANA tipovi podataka definiraju što svaki stupac može pohraniti, pokrivajući datum i vrijeme, numeričke, booleove, znakovne nizove, binarne, velike objekte i viševrijednosne klasifikacije, svaku mapuping na određenu vrstu pohrane stupaca.

U ovom SAP Vodič za HANA vrste podataka, naučit ćemo:
1) SAP HANA tipovi podataka - SAP HANA tipovi podataka uključuju datume i vremena, numerički tip podataka, Booleov, niz znakova, binarne tipove podataka itd.
2) SAP HANA Identifikatori – Ograničeni identifikatori i Neograničeni identifikatori
Vrste podataka u SAP HANNA
In SAP HANA baza podataka, SQL Vrste podataka su sljedeće:
| Klasifikacija | Potklasifikacija | Vrsta podataka SQL | Vrsta trgovine stupaca | Zadani format |
|---|---|---|---|---|
| Vrste vremena vremena | Datum | INFORMACIJE | CS_DAYDATE | 'GGGG-MM-DD' |
| Vrijeme | VRIJEME | CS_SECONDTIME | 'HH24:MI:SS' | |
| Drugi spoj | DRUGI DATUM | CS_LONGDATE | 'GGGG-MM-DD HH24:MI:SS' | |
| Vremenska oznaka | VREMENSKI KAMP | CS_SECONDDATE | 'GGGG-MM-DD HH24:MI:SS.FFn' | |
| Numerički tipovi | Mali cijeli broj | TINYINT | CS_INT | 8-bitni neoznačeni cijeli broj, raspon od 0 do 255 |
| Mali cijeli broj | SMALI | CS_INT | 16-bitni predznačeni cijeli broj, Raspon od -32,768 do 32,767 | |
| Integer | CIJELI | CS_INT | 32-bitni predznačeni cijeli broj, Raspon od -2,147,483,648 do 2,147,483,647 | |
| Veliki cijeli broj | BIGINT | CS_FIKSNO (18,0) | 64-bitni predznačeni cijeli broj, Raspon od -9,223,372,036,854,775,808 do 9,223,372,036,854,775,807 | |
| Decimal | DECIMAL(p,s) p-Preciznost s- mjerilo |
CS_FIXED(ps,s) | Preciznost p može biti u rasponu od 1 do 38. Ljestvica s može varirati od 0 do p za SAP HANA decimalni tip podataka. Ako preciznost i mjerilo nisu navedeni, DECIMAL postaje decimalni broj s pomičnim zarezom. |
|
| Mala decimala | MALODECIMALNO | CS_SDFLOAT | To je decimalni broj s pomičnim zarezom. Preciznost i skala trebaju biti unutar raspona 1~16 za preciznost i -369~368 za skalu, ovisno o pohranjenoj vrijednosti. SMALLDECIMAL je podržan samo za tablicu pohranjivanja stupaca. | |
| Pravi broj | STVARAN | CS_FLOAT | 32-bitni broj s pomičnim zarezom jednostruke preciznosti | |
| Double Broj | DVOSTRUKO | CS_DOUBLE | 64-bitni broj s pomičnim zarezom dvostruke preciznosti | |
| Plutati | FLOAT(n) | CS_DOUBLE | To je 32-bitni ili 64-bitni realni broj. Gdje n određuje broj bitova i treba biti u rasponu između 1 i 53. | |
| Booleova | Booleova | BOOLEAN | CS_INT | TOČNO, NETOČNO I NEPOZNATO (NULL). |
| Niz znakova | Niz znakova promjenjive duljine | VARCHAR (n) | CS_STRING | Ovaj HANA tip podataka duljine niza je niz znakova promjenjive duljine, gdje 'n' određuje maksimalnu duljinu u bajtovima, a to je cijeli broj između 1 i 5000. |
| Unicode znak promjenjive duljine | NVARCHAR(n) | CS_STRING | Unicode niz znakova promjenjive duljine, gdje označava najveću duljinu u znakovima i cijeli je broj između 1 i 5000 | |
| Alfa numerički znak | ALFANUM(n) | CS_ALPHANUM | Alfanumerički znakovi promjenjive duljine, gdje n označava najveću duljinu i cijeli je broj između 1 i 127 | |
| kratki tekst | KRATAK TEKST(n) | CS_STRING | To je niz znakova promjenjive duljine koji omogućuje pretraživanje teksta i nizova. Ovaj tip podataka može se definirati za tablice pohrane stupaca, ali ne i za tablice redaka. | |
| Binarne vrste | Binarni tekst | VARBINARY(n) | CS_RAW | Pohranjujte binarne podatke određene maksimalne duljine u bajtovima, gdje n označava maksimalnu duljinu i cijeli je broj između 1 i 5000. |
| LOB vrste (velike vrste objekata) | Binarni LOB | BLOB | CS_RAW | Velike količine binarnih podataka |
| Lik LOB | KLOB | CS_STRING | ASCII znakovni podaci | |
| Unicode znak LOB | NCLOB | CS_STRING | Veliki objekt Unicode znakova | |
| TEKST | TEKST | CS_STRING | Tip podataka TEXT pruža značajke pretraživanja teksta. Ovaj tip podataka može se definirati za tablice pohranjivanja stupaca, ali ne i za tablice pohranjivanja redaka. | |
| BINARNI tekstualni podaci | BINTEKST | CS_STRING | Tip podataka BINTEXT sličan je tipu podataka TEXT i stoga podržava značajke pretraživanja teksta, ali je moguće umetnuti binarne podatke. Ovaj tip podataka može se definirati za tablice stupaca, ali ne i za tablice redaka. | |
| Tipovi s više vrijednosti | Poredak | Array | Pohranjuje zbirke vrijednosti iste vrste podataka gdje je svaki element povezan s točno jednom pozicijom. Nizovi mogu sadržavati NULL vrijednosti kao u odsutnosti vrijednosti. |
Odabir pravog SAP Vrsta podataka HANA
Gornja tablica navodi što je dostupno. Dobar odabir je važniji u SAP HANA nego u bazi podataka na disku, jer se svaki stupac nalazi u memoriji, a preveliki tip troši oskudne resurse u svakom retku.
Četiri pravila pokrivaju većinu odluka:
- Uzmite najmanji numerički tip koji odgovara. Zastavica statusa s pet mogućih vrijednosti treba TINYINT, a ne INTEGER. U tablici s milijardu redaka razlika se mjeri u gigabajtima memorije.
- Nikada ne čuvajte novac u REAL ili DOUBLE valuti. Brojevi s pomičnim zarezom ne mogu točno predstavljati decimalne razlomke, pa se ukupni iznosi pomiču za razlomke valutne jedinice. Koristite DECIMAL s eksplicitnom preciznošću i skalom.
- Preferirajte NVARCHAR u odnosu na VARCHAR. VARCHAR broji bajtove, a NVARCHAR znakove, tako da se svaki tekst koji nije ASCII neočekivano skraćuje u VARCHAR-u. Moderno SAP HANA izdanja tretiraju VARCHAR kao NVARCHAR upravo iz tog razloga.
- Uskladite preciznost datuma sa zahtjevom. DATE za kalendarski dan, SECONDDATE gdje je vrijeme važno, a TIMESTAMP samo tamo gdje se stvarno koristi preciznost manja od sekunde. Svaki korak prema gore košta prostor za pohranu u svakom retku.
Veliki tipovi objekata zaslužuju poseban oprez. BLOB ili NCLOB stupac je praktičan, ali težak, a pretraživanje teksta na TEXT ili SHORTTEXT radi samo na tablicama pohrane stupaca, tako da su izbor pohrane i izbor tipa podataka povezani. Opcije pohrane obuhvaćene su u SAP HANA SQL udžbenik.
SAP HANA Identifikatori
Identifikatori se koriste za predstavljanje imena u SQL izjava (npr. naziv tablice, naziv pogleda, naziv stupca, naziv indeksa, naziv sinonima, naziv procedure, naziv funkcije itd.)
Postoje dvije vrste identifikatora SAP HANNA: Ograničeni identifikatori i Neograničeni identifikatori.
- Ograničeni identifikatori – nalazi se u razdjelniku, Double Citati "". Identifikator može sadržavati bilo koji znak uključujući i posebne znake.
- Neograničeni identifikatori – Neograničeni identifikatori (naziv tablice, naziv stupca) moraju započeti slovom i ne mogu sadržavati nikakve simbole osim znamenke ili podvlake '_'.
Postoje dvije vrste navodnika za razgraničenje kao u nastavku-
- Jednostruki navodnik (' ') – Koristi se za ograničavanje niza.
- Double Navodnik (” “)– Koristi se za razgraničenje identifikatora.
⚠️ Upozorenje: Neograničeni identifikator pretvara se u velika slova prilikom stvaranja objekta. Stvaranje tablice kao zaposlenik, a kasnije odabir "zaposlenik" malim slovima ne uspijeva jer je pohranjeno ime ZAPOSLENIK. Ili u potpunosti izbjegavajte navodnike ili ih koristite dosljedno.
Konverzija tipova podataka i uobičajene pogreške
SAP HANA automatski pretvara između kompatibilnih tipova, ali implicitna pretvorba je tihi izvor pogrešnih rezultata i sporih upita. Eksplicitna pretvorba čini namjeru vidljivom.
Dvije funkcije obavljaju posao. CAST pretvara vrijednost u imenovani tip, a TO_DATE, TO_VARCHAR, TO_DECIMAL i njihovi srodnici pretvaraju s opcionalnim formatnim nizom.
-- 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;
Četiri pogreške uzrokuju većinu problema s konverzijom:
- Numerički prekoračenje. Umetanje 40000 u SMALLINT ne uspijeva jer se predznačeni raspon zaustavlja na 32 767. Poruka imenuje stupac, a ne vrijednost, stoga prvo provjerite definiciju.
- Skraćivanje niza. Učitavanje teksta duljeg od deklarirane duljine uzrokuje grešku umjesto da ga tiho izreže. Broj znakove u odnosu na NVARCHAR, a bajtove u odnosu na VARCHAR.
- Nevažeći format datuma. Prosljeđivanje niza u pogrešnom uzorku na TO_DATE ne uspijeva. Uvijek navedite masku formata umjesto da se oslanjate na zadanu vrijednost sesije.
- Implicitna konverzija u WHERE klauzuli. Uspoređivanje stupca znakova s brojem prisiljava pretvorbu u svakom retku, što sprječava učinkovito filtriranje. Pretvorite konstantu umjesto stupca.
Simboli usporedbe korišteni u ovim filterima opisani su u SAP HANA operaterii šira platforma u SAP HANA vodič Serija.
