SAP HANA Veri Türleri: Sayısal, Karakter Dizesi, Ondalık
⚡ Akıllı Özet
SAP HANA Veri Tipleri, her sütunun ne depolayabileceğini tanımlar; tarih ve saat, sayısal, mantıksal, karakter dizisi, ikili, büyük nesne ve çok değerli sınıflandırmaları kapsar ve her biri bir eşleme ile ilişkilendirilir.ping belirli bir sütun tabanlı depolama türüne.

Bu SAP HANA Veri Türleri eğitiminde şunları öğreneceğiz:
1) SAP HANA Veri Türleri - SAP HANA veri türleri arasında Tarih Saatler, Sayısal veri türü, Boolean, Karakter Dizesi, İkili veri türleri vb. bulunur.
2) SAP HANA Tanımlayıcıları – Sınırlandırılmış Tanımlayıcılar ve Sınırlandırılmamış Tanımlayıcılar
Veri Türleri SAP HANA
In SAP HANA Veritabanı, SQL Veri Türleri aşağıdaki gibidir:
| Sınıflandırma | Alt Sınıflandırma | SQL Veri Türü | Sütun Deposu Türü | Varsayılan biçim |
|---|---|---|---|---|
| Tarih Saat Türleri | Tarih | TARİH | CS_DAYDATE | 'YYYY-AA-GG' |
| Zaman | ZAMAN | CS_SECONDTIME | 'HH24:MI:SS' | |
| İkinci Tarih | İKİNCİ TARİH | CS_LONGDATE | 'YYYY-AA-GG SS24:MI:SS' | |
| Zaman Damgası | TIMESTAMP | CS_SECONDDATE | 'YYYY-AA-GG SS24:MI:SS.FFn' | |
| Sayısal Türler | Minik Tamsayı | KÜÇÜK | CS_INT | 8 bitlik işaretsiz tamsayı, 0 ile 255 arası değer aralığı |
| Küçük Tamsayı | KÜÇÜK | CS_INT | 16 bitlik işaretli tamsayı, Aralık -32,768 ile 32,767 arası | |
| Tamsayı | INTEGER | CS_INT | 32 bitlik işaretli tamsayı, Aralık -2,147,483,648 ile 2,147,483,647 arası | |
| Büyük Tamsayı | BÜYÜK | CS_FIXED(18,0) | 64 bitlik işaretli tamsayı, Aralık -9,223,372,036,854,775,808 ile 9,223,372,036,854,775,807 arası | |
| Ondalık | DECIMAL(p,s) p-Hassaslık s ölçeği |
CS_FIXED(ps,s) | Hassasiyet p 1 ila 38 arasında değişebilir. Ölçek 0'dan p'ye kadar değişebilir. SAP HANA ondalık veri türü. Hassasiyet ve ölçek belirtilmezse, DECIMAL kayan noktalı bir ondalık sayı haline gelir. |
|
| Küçük Ondalık | KÜÇÜKDECIMAL | CS_SDFLOAT | Kayan noktalı bir ondalık sayıdır. Hassasiyet ve ölçek, saklanan değere bağlı olarak hassasiyet için 1~16 ve ölçek için -369~368 aralığında olmalıdır. SMALLDECIMAL yalnızca sütun deposu Tablosu için desteklenir. | |
| Gerçek Numara | GERÇEK | CS_FLOAT | tek duyarlıklı 32 bit kayan noktalı sayı | |
| Double Numara | ÇİFT | CS_ÇİFT | çift hassasiyetli 64 bitlik kayan nokta sayısı | |
| Şamandıra | FLOAT(n) | CS_ÇİFT | Bu, 32 bit veya 64 bitlik bir gerçek sayıdır. Burada n, bit sayısını belirtir ve 1 ile 53 arasında olmalıdır. | |
| Boole | Boole | BOOLE | CS_INT | DOĞRU, YANLIŞ ve BİLİNMEYEN (BOŞ). |
| Karakter dizesi | Değişken Uzunlukta Karakter Dizesi | VARCHAR (n) | CS_STRING | Bu HANA dize uzunluğu veri türü, 'n'nin bayt cinsinden maksimum uzunluğu belirttiği ve 1 ile 5000 arasında bir tamsayı olduğu değişken uzunluklu bir karakter dizisidir. |
| Değişken Uzunluklu Unicode karakter | NVARCHAR(n) | CS_STRING | Değişken uzunluklu Unicode karakter kümesi dizesi; Karakter cinsinden maksimum uzunluğu belirtir ve 1 ile 5000 arasında bir tam sayıdır | |
| Alfanumerik karakter | ALFA(n) | CS_ALPHANUM | Değişken uzunluklu alfasayısal karakterler; burada n maksimum uzunluğu belirtir ve 1 ile 127 arasında bir tam sayıdır | |
| kısa metin | KISAMETİN(n) | CS_STRING | Değişken uzunluklu karakter dizisi olup metin arama ve dize arama özellikleri sunar. Bu veri türü sütun tabanlı tablolar için tanımlanabilir, ancak satır tabanlı tablolar için tanımlanamaz. | |
| İkili Tipler | İkili Metin | VARBİNER(n) | CS_RAW | Belirtilen maksimum uzunluğa sahip ikili verileri bayt cinsinden depolayın; burada n, maksimum uzunluğu belirtir ve 1 ile 5000 arasında bir tam sayıdır. |
| LOB Türleri(Büyük Nesne Türleri) | İkili LOB | BLOB | CS_RAW | Büyük miktarda ikili veri |
| Karakter LOB'u | CLOB | CS_STRING | ASCII karakter verileri | |
| Unicode Karakter LOB'u | NCLOB | CS_STRING | Büyük Unicode karakter nesnesi | |
| METİN | METİN | CS_STRING | TEXT veri türü metin arama özellikleri sağlar. Bu veri türü sütun Mağaza tabloları için tanımlanabilir, ancak satır mağaza tabloları için tanımlanamaz. | |
| İKİLİ Metin Verileri | BINTEXT | CS_STRING | BINTEXT veri türü, TEXT veri türüne benzer ve bu nedenle metin arama özelliklerini destekler, ancak ikili veri eklemek mümkündür. Bu veri türü sütun tabloları için tanımlanabilir ancak satır tabloları için tanımlanamaz. | |
| Çok Değerli Türler | Dizi | DİZİ | Her öğenin tam olarak bir konumla ilişkili olduğu aynı veri türündeki değer koleksiyonlarını saklar. Diziler, bir değerin yokluğunda olduğu gibi NULL değerler içerebilir. |
Doğru Olanı Seçmek SAP HANA Veri Türü
Yukarıdaki tabloda mevcut seçenekler listelenmiştir. Doğru seçim yapmak çok daha önemlidir. SAP HANA, disk tabanlı veritabanlarına kıyasla daha verimli çalışır çünkü her sütun bellekte bulunur ve aşırı büyük bir veri tipi, her satırda kıt bir kaynağı tüketir.
Çoğu karar için geçerli dört kural vardır:
- Uygun olan en küçük sayısal türü seçin. Beş olası değere sahip bir durum bayrağı için INTEGER değil, TINYINT gerekir. Bir milyar satırlık bir tabloda bu fark, gigabayt cinsinden bellek kullanımıyla ölçülür.
- Paranızı asla REAL veya DOUBLE'da saklamayın. Kayan noktalı sayılar ondalık kesirleri tam olarak temsil edemez, bu nedenle toplamlar para biriminin kesirleri kadar sapma gösterir. Hassasiyet ve ölçek belirterek DECIMAL ifadesini kullanın.
- VARCHAR yerine NVARCHAR'ı tercih edin. VARCHAR baytları, NVARCHAR ise karakterleri sayar; bu nedenle ASCII olmayan herhangi bir metin VARCHAR'da beklenmedik şekilde kesilir. Modern SAP HANA sürümleri, tam da bu nedenle VARCHAR'ı NVARCHAR olarak ele alır.
- Tarih hassasiyetini gereksinime uygun hale getirin. Takvim günleri için DATE, günün saatinin önemli olduğu durumlarda SECONDDATE ve yalnızca saniye altı hassasiyetin gerçekten kullanıldığı durumlarda TIMESTAMP kullanılır. Her bir üst seviye, her satırda depolama alanını artırır.
Büyük nesne türleri özellikle dikkat gerektirir. BLOB veya NCLOB sütunu kullanışlıdır ancak ağırdır ve TEXT veya SHORTTEXT üzerinde metin araması yalnızca sütun tabanlı tablolarda çalışır, bu nedenle depolama seçimi ve veri türü seçimi birbirine bağlıdır. Depolama seçenekleri aşağıdaki bölümde ele alınmıştır. SAP HANA SQL'i öğretici.
SAP HANA Tanımlayıcıları
Tanımlayıcılar adı temsil etmek için kullanılır SQL ifade (örneğin tablo adı, görünüm adı, sütun adı, dizin adı, eşanlamlı ad, prosedür adı, işlev adı vb.)
İki tür tanımlayıcı vardır SAP HANA: Sınırlandırılmış tanımlayıcılar ve Sınırlanmamış tanımlayıcılar.
- Sınırlandırılmış Tanımlayıcılar – Sınırlayıcının içine alınır, Double Alıntılar “”. Tanımlayıcı, özel karakter de dahil olmak üzere herhangi bir karakteri içerebilir.
- Sınırsız Tanımlayıcılar – Sınırlandırılmamış tanımlayıcılar (tablo adı, sütun adı) bir harfle başlamalı ve rakam veya alt çizgi '_' dışında herhangi bir simge içeremez.
Aşağıdaki gibi sınırlama için iki tür tırnak işareti vardır:
- Tek Tırnak İşareti (' ') – Diziyi sınırlamak için kullanılır.
- Double Tırnak işareti (" ")– Tanımlayıcıları sınırlamak için kullanılır.
⚠️Uyarı: Sınırlandırılmamış bir tanımlayıcı, nesne oluşturulduğunda büyük harfe dönüştürülür. Çalışan olarak bir tablo oluşturup daha sonra küçük harflerle "çalışan" verilerinden seçim yapmak başarısız olur, çünkü saklanan ad EMPLOYEE'dir. Ya çift tırnak işaretlerinden tamamen kaçının ya da bunları tutarlı bir şekilde kullanın.
Veri Türü Dönüştürme ve Sık Yapılan Hatalar
SAP HANA, uyumlu türler arasında otomatik olarak dönüştürme yapar, ancak örtük dönüştürme, yanlış sonuçların ve yavaş sorguların sessiz kaynağıdır. Açık dönüştürme ise amacı görünür kılar.
İki fonksiyon bu işi yapar. CAST, bir değeri adlandırılmış bir türe dönüştürür; TO_DATE, TO_VARCHAR, TO_DECIMAL ve bunların türevleri ise isteğe bağlı bir format dizesiyle dönüştürme işlemi gerçekleştirir.
-- 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;
Dönüştürme sorunlarının çoğuna dört hata neden olur:
- Sayısal taşma. 40000 değerini SMALLINT türündeki bir sayıya eklemek başarısız olur çünkü işaretli aralık 32,767'de durur. Mesajda değer yerine sütun adı belirtiliyor, bu nedenle önce tanımı kontrol edin.
- Dize kısaltma. Belirtilen uzunluktan daha uzun metin yüklemek, metni sessizce kesmek yerine hata verir. Karakter sayısını NVARCHAR, bayt sayısını ise VARCHAR olarak hesaplayın.
- Geçersiz tarih biçimi. TO_DATE fonksiyonuna yanlış kalıpta bir dize göndermek başarısız olur. Oturum varsayılanına güvenmek yerine her zaman biçim maskesini belirtin.
- WHERE koşulunda örtük dönüşüm. Bir karakter sütununu bir sayıyla karşılaştırmak, her satırda dönüştürme işlemi gerektirir ve bu da verimli filtrelemeyi engeller. Sütunu dönüştürmek yerine sabiti dönüştürün.
Bu filtrelerde kullanılan karşılaştırma sembolleri aşağıdakilerle sınırlıdır. SAP HANA operatörlerive daha geniş platformda SAP HANA eğitim kılavuzu serisi.
