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.

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:
- 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ä.
- Merkkijonojen katkaisu. Ilmoitettua pituutta pidemmän tekstin lataaminen aiheuttaa virheen sen sijaan, että se leikattaisiin hiljaisesti. Laske merkit NVARCHAR-arvoon ja tavut VARCHAR-arvoon.
- 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.
- 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.
