SAP HANA-tietotyypit: numeerinen, merkkijono, desimaali

⚡ Älykäs yhteenveto

SAP HANA-tietotyypit määrittelevät, mitä kukin sarake voi tallentaa, ja ne kattavat päivämäärän ja kellonajan, numeeriset arvot, totuusarvot, merkkijonot, binääriarvot, suuret objektit ja moniarvoiset luokitukset, jokaisen kartan.ping tiettyyn saraketallennustyyppiin.

  • Päivämäärä- ja kellonaikatyypit: DATE, TIME, SECONDDATE ja TIMESTAMP eroavat toisistaan ​​säilyttämänsä tarkkuuden suhteen.
  • 🔢 Numeerinen alue: TINYINT - BIGINT kattavat kokonaisluvut, kun taas DECIMAL, SMALLDECIMAL, REAL ja DOUBLE käsittelevät murtolukuja.
  • 🔤 Merkkijonot: VARCHAR sisältää tavuja ja NVARCHAR Unicode-merkkejä, molemmat rajoitettu 5000:een.
  • 📦 Suuret esineet: BLOB-, CLOB-, NCLOB-, TEXT- ja BINTEXT-sarakkeissa on tallennettuna liian suuri määrä dataa normaaliin sarakkeeseen.
  • 🔍 Haku käytössä: TEXT, BINTEXT ja SHORTTEXT tukevat kokotekstihakua, mutta vain saraketallennustaulukoissa.
  • 🇧🇷 Tunnisteet: Erotinmerkeillä varustetut tunnisteet sijaitsevat lainausmerkkien sisällä ja hyväksyvät minkä tahansa merkin; rajaamattomien tunnisteiden on alettava kirjaimella.
  • Lainaussääntö: Yksittäiset lainausmerkit rajaavat merkkijonoarvon ja kaksinkertaiset lainausmerkit tunnisteen.

SAP HANA-tietotyypit

Tässä SAP HANA Data Types -opetusohjelma, opimme:

1) SAP HANA-tietotyypit - SAP HANA-tietotyyppejä ovat Date Times, Numeerinen tietotyyppi, Boolean, Merkkijono, Binääritietotyypit jne.

2) SAP HANA-tunnisteet – Erotetut tunnisteet ja rajoittamattomat tunnisteet

Tietotyypit sisään SAP HANA

In SAP HANA-tietokanta, SQL Tietotyypit ovat seuraavat:

Luokittelu Alaluokitus SQL-tietotyyppi Sarakemyymälän tyyppi Oletusmuoto
Päivämäärä Ajan tyypit Päivämäärä DATE CS_DAYDATE "VVVV-KK-PP"
Aika: AIKA CS_SECONDTIME "HH24:MI:SS"
Toinen päivämäärä TOINEN PÄIVÄMÄÄRÄ CS_LONGDATE "VVVV-KK-PP HH24:MI:SS"
Aikaleima AIKALEIMA CS_SECONDDATE "VVVV-KK-PP HH24:MI:SS.FFn"
Numeeriset tyypit Pieni kokonaisluku TINYINT CS_INT 8-bittinen etumerkitön kokonaisluku, alue 0–255
Pieni kokonaisluku PIENI CS_INT 16-bittinen etumerkillinen kokonaisluku, alue -9 223 372 036 854 775 808 - 9 223 372 036 854 775 807
Kokonaisluku KOKONAISLUKU CS_INT 32-bittinen etumerkillinen kokonaisluku, alue -9 223 372 036 854 775 808 - 9 223 372 036 854 775 807
Iso kokonaisluku BIGINT CS_KIINTEÄ(18,0) 64-bittinen etumerkillinen kokonaisluku, alue -9 223 372 036 854 775 808 - 9 223 372 036 854 775 807
Desimaali DESIMAALI(p,s)
p-Tarkkuus
s-asteikko
CS_FIXED(ps,s) Tarkkuus p voi vaihdella välillä 1-38.
Asteikko s voi vaihdella välillä 0 - p SAP HANA desimaalitietotyyppi.
Jos tarkkuutta ja skaalaa ei ole määritetty, DECIMALista tulee liukuluku desimaaliluku.
Pieni desimaali PIENDESIMAALI CS_SDFLOAT Se on liukuluku desimaaliluku. Tarkkuuden ja asteikon tulee olla välillä 1-16 tarkkuus ja -369-368 asteikolla, riippuen tallennetusta arvosta. SMALLDECIMAL on tuettu vain sarakevarastotaulukossa.
Oikea numero TODELLINEN CS_FLOAT yhden tarkkuuden 32-bittinen liukuluku
Double numero KAKSINKERTAINEN CS_DOUBLE kaksinkertainen tarkkuus 64-bittinen liukuluku
kellua FLOAT(n) CS_DOUBLE Se on 32-bittinen tai 64-bittinen reaaliluku. Jossa n määrittää bittien määrän ja sen tulisi olla välillä 1–53.
boolean boolean BOOLEN CS_INT TOSI, EPÄTOSI JA TUNTEMATTOMA (NULL).
Merkkijono Vaihtuvapituinen merkkijono VARCHAR (n) CS_STRING Tämä HANA-merkkijonon pituus -tietotyyppi on muuttuvan pituinen merkkijono, jossa 'n' määrittää enimmäispituuden tavuina ja tämä on kokonaisluku väliltä 1–5000.
Vaihtuvapituinen Unicode-merkki NVARCHAR(n) CS_STRING Vaihtuvapituinen Unicode-merkkijono, jossa ilmaisee enimmäispituuden merkeissä ja on kokonaisluku väliltä 1-5000
Alfa-numeerinen merkki ALFANUM(n) CS_ALPHANUM Vaihtuvapituiset aakkosnumeeriset merkit, joissa n ilmaisee enimmäispituuden ja on kokonaisluku väliltä 1–127
lyhyt teksti LYHYTTEKSTI(n) CS_STRING Se on vaihtelevan pituinen merkkijono, joka tarjoaa teksti- ja merkkijonohakuominaisuuksia. Tämä tietotyyppi voidaan määrittää saraketallennustaulukoille, mutta ei rivitaulukoille.
Binäärityypit Binääriteksti VARBINARY(n) CS_RAW Tallenna binääridataa, jonka enimmäispituus on tavuissa, missä n osoittaa enimmäispituuden ja on kokonaisluku väliltä 1-5000.
LOB-tyypit (suuret objektityypit) Binääri LOB BLOB CS_RAW Suuret määrät binaaridataa
Hahmo LOB CLOB CS_STRING ASCII-merkkitiedot
Unicode-merkki LOB NCLOB CS_STRING Suuri Unicode-merkkiobjekti
TEKSTI TEKSTI CS_STRING TEXT-tietotyyppi tarjoaa tekstihakuominaisuudet. Tämä tietotyyppi voidaan määrittää sarake Store-taulukoille, mutta ei rivivarastotaulukoille.
BINAARINEN tekstidata BINTEKSTI CS_STRING BINTEXT-tietotyyppi on samanlainen kuin tietotyyppi TEXT ja tukee siten tekstihakuominaisuuksia, mutta binääridataa on mahdollista lisätä. Tämä tietotyyppi voidaan määrittää saraketaulukoille, mutta ei rivitaulukoille.
Moniarvoiset tyypit Ryhmä ARRAY Se tallentaa saman tietotyypin arvokokoelmia, joissa jokainen elementti liittyy täsmälleen yhteen paikkaan. Taulukot voivat sisältää NULL-arvoja, kuten arvon puuttuessa.

Oikean valinta SAP HANA-tietotyyppi

Yllä olevassa taulukossa luetellaan saatavilla olevat vaihtoehdot. Hyvin valitseminen on tärkeämpää SAP HANA-tietokannassa kuin levypohjaisessa tietokannassa, koska jokainen sarake sijaitsee muistissa ja ylisuuri tyyppi kuluttaa niukkoja resursseja jokaisella rivillä.

Neljä sääntöä kattavat useimpia päätöksiä:

  • Ota pienin sopiva numerotyyppi. Viiden mahdollisen arvon omaava tilalippu tarvitsee TINYINT-argumentin, ei INTEGER-argumentin. Miljardin rivin taulukossa ero mitataan gigatavuina muistia.
  • Älä koskaan säilytä rahaa OIKEASSA tai KAKSINKERTAISENA. Liukuluku ei voi esittää desimaalilukuja tarkasti, joten kokonaissummat poikkeavat valuuttayksikön murto-osien verran. Käytä DECIMAL-lauseketta nimenomaisella tarkkuudella ja skaalauksella.
  • Suosi NVARCHARia VARCHARin sijaan. VARCHAR laskee tavuja ja NVARCHAR merkkejä, joten kaikki muu kuin ASCII-merkistö katkeaa odottamatta VARCHARissa. SAP HANA-julkaisut käsittelevät VARCHARia NVARCHARina juuri tästä syystä.
  • Sovita päivämäärän tarkkuus vaatimukseen. DATE kalenteripäivälle, SECONDDATE, jos kellonaika on tärkeä, ja TIMESTAMP vain, jos käytetään aidosti sekunnin jälkeistä tarkkuutta. Jokainen askel ylöspäin maksaa tallennustilaa jokaisella rivillä.

Suuriin objektityyppeihin on syytä kiinnittää erityistä huomiota. BLOB- tai NCLOB-sarake on kätevä, mutta raskas, ja tekstihaku TEXT- tai SHORTTEXT-saraketaulukoissa toimii vain saraketallennustaulukoissa, joten tallennusvaihtoehdot ja tietotyypin valinnat ovat yhteydessä toisiinsa. Tallennusvaihtoehtoja käsitellään seuraavassa. SAP HANA SQL opetusohjelma.

SAP HANA-tunnisteet

Tunnisteita käytetään edustamaan nimeä SQL lauseke (esim. taulukon nimi, näkymän nimi, sarakkeen nimi, indeksin nimi, synonyymin nimi, toimintosarjan nimi, funktion nimi jne.)

Siinä on kahdenlaisia ​​tunnisteita SAP HANA: Erotetut tunnisteet ja Rajoittamattomat tunnisteet.

  • Erotetut tunnisteet – Se on suljettu erotinmerkkiin, Double Lainaukset "". Tunniste voi sisältää minkä tahansa merkin, mukaan lukien erikoismerkin.
  • Rajoittamattomat tunnisteet – Rajoittamattomien tunnisteiden (taulukon nimi, sarakkeen nimi) tulee alkaa kirjaimella, eivätkä ne saa sisältää muita symboleja kuin numeroa tai alaviivaa '_'.

On olemassa kahdenlaisia ​​lainausmerkkejä, joita voidaan rajata alla olevan mukaisesti

  • Yksi lainausmerkki (' ') – Sitä käytetään merkkijonon rajaamiseen.
  • Double Lainausmerkki (" ")– Sitä käytetään tunnisteiden rajaamiseen.

⚠️ Varoitus: Rajoittamaton tunniste muunnetaan isoksi kirjaimeksi objektia luotaessa. Taulukon luominen työntekijänä ja myöhemmin ”työntekijä”-kohdan valitseminen pienellä kirjaimella epäonnistuu, koska tallennettu nimi on TYÖNTEKIJÄ. Vältä lainausmerkkejä kokonaan tai käytä niitä johdonmukaisesti.

Tietotyyppien muuntaminen ja yleiset virheet

SAP HANA muuntaa yhteensopivien tyyppien välillä automaattisesti, mutta implisiittinen muunnos on hiljainen virheellisten tulosten ja hitaiden kyselyiden lähde. Eksplisiittinen muunnos tekee tarkoituksen näkyväksi.

Kaksi funktiota hoitaa työn. CAST muuntaa arvon nimetyksi tyypiksi ja TO_DATE, TO_VARCHAR, TO_DECIMAL ja niiden sukulaisargumentit muuntavat sen valinnaiseksi muotoilumerkkijonoksi.

-- 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;

Neljä virhettä selittävät useimpia muunnosongelmia:

  1. Numeerinen ylivuoto. Luvun 40000 lisääminen SMALLINT-argumenttiin epäonnistuu, koska etumerkillinen väli päättyy lukuun 32 767. Viesti nimeää sarakkeen arvon sijaan, joten tarkista ensin määritelmä.
  2. Merkkijonojen katkaisu. Ilmoitettua pituutta pidemmän tekstin lataaminen aiheuttaa virheen sen sijaan, että se leikattaisiin hiljaisesti. Laske merkit NVARCHAR-arvoon ja tavut VARCHAR-arvoon.
  3. Virheellinen päivämäärämuoto. Merkkijonon välittäminen väärässä mallissa TO_DATE-funktiolle epäonnistuu. Anna aina muotoilumaski istunnon oletusarvon käyttämisen sijaan.
  4. Implisiittinen muunnos WHERE-lauseessa. Merkkisarakkeen vertaaminen lukuun pakottaa muunnoksen jokaisella rivillä, mikä estää tehokkaan suodatuksen. Muunna vakio sarakkeen sijaan.

Näissä suodattimissa käytetyt vertailusymbolit on käsitelty kohdassa SAP HANA-operaattoritja laajempi alusta SAP HANA-opetusohjelma sarja.

UKK

VARCHAR mittaa rajansa tavuina ja NVARCHAR Unicode-merkkeinä. NVARCHAR on turvallinen valinta mille tahansa tekstille, joka saattaa sisältää muita kuin ASCII-merkkejä, koska se ei katkaise merkkiä odottamatta.

Käytä SECONDDATE-funktiota, kun toisen tason tarkkuus riittää, mikä kattaa useimmat liiketoimintatapahtumat. TIMESTAMP lisää murto-osia sekunneista ja maksaa enemmän tallennustilaa suuren taulukon jokaisella rivillä.

Kyllä. Lähdetiedoston profilointi paljastaa todelliset arvoalueet, pituudet ja muodot, joista tekoäly ehdottaa kullekin sarakkeelle pienintä turvallista tyyppiä puolustavan ylisuuren oletusarvon sijaan.

Kyllä. Ilmoitettujen pituuksien vertaaminen tallennettuihin arvoihin korostaa sarakkeita, jotka saattavat kutistua, millä on merkitystä, koska jokainen HANA-taulukon sarake tallennetaan muistiin.

TEXT, BINTEXT ja SHORTTEXT tarjoavat tekstihakuominaisuuksia. Kaikki kolme rajoittuvat saraketallennustaulukoihin, eikä niitä voida määrittää rivitallennustaulukolle.

Tiivistä tämä viesti seuraavasti: