|
<< İçindekileri Görüntülemek İçin Tıklayın >> Yer: Teknik Kılavuzlar > IVEDI SQL Kullanıcı Kılavuzu > 3. Veri tipleri > 3.3 Karakter ve ikili tipler |
| Yazım | Notlar |
|---|---|
CHAR(n), CHARACTER(n) |
Uzunluk verilmezse (1) varsayılır. Değer n karaktere boşlukla
doldurulur ve karşılaştırmada PAD SPACE uygulanır; bkz.
“Karakter değerden dönüşüm kuralları”. |
VARCHAR(n), CHARACTER VARYING(n) | Uzunluk zorunlu. |
NCHAR, NVARCHAR, NATIONAL CHARACTER … |
NATIONAL öneki yalnızca karakter tiplerinde geçerlidir. |
CLOB, NCLOB, CHARACTER LARGE OBJECT |
Karakter dizisi tipidir; SQL düzeyinde düz metin gibi davranır. |
BINARY(n) | Uzunluk zorunlu. |
VARBINARY(n), BINARY VARYING(n) | |
BLOB [SUB_TYPE {TEXT|BINARY|<n>}] [SEGMENT [SIZE] n] |
SEGMENT SIZE ayrıştırılır ve yok sayılır (bir
derleme uyarısı basar). BLOB SUB_TYPE TEXT bir CLOB'dur. Sayısal bir alt tip
katalogda tutulur; negatif bir alt tip (BLOB SUB_TYPE -100) Firebird DDL'sine
aynen yazılır. 1'den büyük pozitif alt tipleri Firebird kabul etmediği için onlar depoya
düz BLOB olarak gider; öteki depolar alt tipi yok sayar. Firebird var olan bir
BLOB'un alt tipini ALTER ile değiştiremez; tip değişikliği geçici sütun ve kopya
yoluyla yapılır. |
STRING | Uzunluksuz. Yalnızca PSQL bağlamlarında; tablo sütunu olamaz. |
CSTRING(n) | Aynı şekilde yalnızca PSQL. |
Uzunluk sınırları: karakter tipleri için 1 000 000 karakter, ikili tipler için
1 000 000 bayt. CLOB için 1 GiB, BLOB için 1 PiB üst
sınırı tanımlıdır.
Uzunluk birimi açıkça yazılabilir: VARCHAR(50 CHARACTERS) ya da
VARCHAR(50 OCTETS). Karakter tiplerinde CHARACTER SET <ad> ve
COLLATE <ad> yan tümceleri kabul edilir.
Bu motorda ikili değerler ve LOB'lar değer düzeyinde karakter dizisi temsilindedir.
Bir x'0102' sabitinin çalışma zamanı tipi STRING'dir; bir CLOB sütunu okunduğunda
STRING döner. Pratik sonucu: bir karakter değeri bir BINARY ya da BLOB alanına yazılabilir ve bu
bir dönüşüm uyarısı üretmez. Ters yönde, ikili bir değer CAST(... AS VARCHAR(n)) ya da
CAST(... AS CLOB) ile metne çevrildiğinde baytlar geçerli UTF-8 ise UTF-8 metin olur
(x'C3A7' tek karakter ç); geçerli UTF-8 değilse ham bayt olarak kalır.