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.

  • Vrste datuma i vremena: DATE, TIME, SECONDDATE i TIMESTAMP razlikuju se po preciznosti koju zadržavaju.
  • 🔢 Numerički raspon: TINYINT do BIGINT pokrivaju cijele brojeve, dok DECIMAL, SMALLDECIMAL, REAL i DOUBLE obrađuju razlomke.
  • 🔤 Nizovi znakova: VARCHAR sadrži bajtove, a NVARCHAR sadrži Unicode znakove, oba ograničena na 5000.
  • ???? Veliki objekti: BLOB, CLOB, NCLOB, TEXT i BINTEXT pohranjuju podatke koji su preveliki za normalan stupac.
  • 🔍 Omogućeno pretraživanje: TEXT, BINTEXT i SHORTTEXT podržavaju pretraživanje cijelog teksta, ali samo u tablicama pohrane stupaca.
  • ✍️ Identifikatori: Razgraničeni identifikatori nalaze se unutar dvostrukih navodnika i prihvaćaju bilo koji znak; neograničeni moraju započeti slovom.
  • Pravilo citiranja: Jednostruki navodnici ograničavaju vrijednost niza znakova, a dvostruki navodnici ograničavaju identifikator.

SAP HANA tipovi podataka

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:

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

Pitanja i odgovori

VARCHAR mjeri svoje ograničenje u bajtovima, a NVARCHAR u Unicode znakovima. Za bilo koji tekst koji može sadržavati znakove koji nisu ASCII, NVARCHAR je siguran izbor jer se neće neočekivano skratiti.

Koristite SECONDDATE kada je dovoljna preciznost druge razine, što pokriva većinu poslovnih događaja. TIMESTAMP dodaje dijelove sekundi i zahtijeva više prostora za pohranu u svakom retku velike tablice.

Da. Profiliranje izvorne datoteke otkriva stvarne raspone vrijednosti, duljine i formate, iz kojih umjetna inteligencija predlaže najmanji sigurni tip za svaki stupac umjesto obrambeno prevelike zadane vrijednosti.

Da. Uspoređivanje deklariranih duljina s vrijednostima koje su stvarno pohranjene ističe stupce koji bi se mogli smanjiti, što je važno jer se svaki stupac HANA tablice čuva u memoriji.

TEXT, BINTEXT i SHORTTEXT pružaju značajke pretraživanja teksta. Sva tri su ograničena na tablice pohrane stupaca i ne mogu se definirati na tablici pohrane redaka.

Sažmite ovu objavu uz: