Ms SQL Postgre Veri Tipleri Karşılaştırma Tablosu
PostgreSQL’deki veri tipleri aşağıda sunulmuştur. PostgreSQL’de kullanılabilen veri tiplerinden bazıları PostgreSQL’e özgüdür, diğer veritabanlarında yer almaz. Bazı veri tipleri ise alt türlere bölünerek farklı kullanım alanlarına uyum sağlamayı kolaylaştırarak performans getirileri sunar.
MS SQL Type | MS SQL Max Uzunluk | Postgre Type | Postgre Max Uzunluk |
BIGINT | 82^63-1 | BIGINT | 92239223372036854775807 |
BIT | 0,1 or NULL | BOOLEAN | True, false, null |
SMALLINT | 2^15-1 | INT | 2147483647 |
DECIMAL | 10^38 - 1 | NUMERIC | Ondalık ayracı öncesinde 131072 haneye kadar sonrasında 16383 haneye kadar |
SMALLMONEY | 214,748.3647 | NUMERIC | Ondalık ayracı öncesinde 131072 haneye kadar sonrasında 16383 haneye kadar |
INT | 2^31-1 (2,147,483,647) | INT | 2147483647 |
TINYINT | 255 | SMALLINT | 32767 |
MONEY | 922,337,203,685,477.587 | NUMERIC | Ondalık ayracı öncesinde 131072 haneye kadar sonrasında 16383 haneye kadar |
FLOAT | 1.79E+308 | REAL | 6 ondalık hane |
REAL | 3.40E + 38 | REAL | 6 ondalık hane |
DATE | 10 | TIMESTAMPTZ | 8 |
DATETIME | 23 | TIMESTAMPTZ | 8 |
SMALLDATETIME | 19 | TIMESTAMP(0) | 8 |
TIME | 12 | TIME | 8 |
CHAR | 8,000 | VARCHAR | 10485760 |
VARCHAR | 8,000 | TEXT | Değişken sınırsız uzunluklu |
TEXT | 2^30 - 1 | TEXT | Değişken sınırsız uzunluklu |
NCHAR | 4,000 | CHARACTER | 10485760 |
NVARCHAR | 8,000 | VARCHAR | 10485760 |
NTEXT | 2^30 - 1 | TEXT | Değişken sınırsız uzunluklu |
BINARY | 8,000 | BYTEA | 1GB |
ROWVERSION | 8 | BYTEA | 1GB |
UNIQUEIDENTIFIER | 16 | CHAR(16) | 16 |
Postgre ve MS SQL Query veya view syntax'larında farklılıklar
MS SQL | Postgre |
Year() | EXTRAC () |
ISNULL | COALESCE() |
DATEADD (day, valid, purchased) | purchased + valid * INTERVAL '1 day' |
getdate() | now() |
DATEDIFF() | extract() |
month() | EXTRACT() |
ISNUMERIC() | is null = 0, is not nul l= 1 |
charindex(substring,string) | strpos (string,substring) ya da position (substring in string) |
len() | length() |
top | limit |
string concatenation + | string concatenation || |
print(v_SQL) | raise notice '%', v_SQL |
SET NOCOUNT ON; | kullanılmaz |
OUTER APPLY | LEFT JOIN LATERAL |
DATEDIFF | DATE_PART |
FORMAT(COLUMN_NAME, ‘dd/MM/yyyy’) | FORMAT(CAST(COLUMN_NAME AS TEXT), ‘dd/MM/yyyy’) |
option(maxrecursion 12); | limit 12 |
##tmp_table (Burada temp tablo oluşturulmuş) | tmp_table (postgreste ## işaretleri kullanılmaz) |
Postgre’ye Geçiş Sonrası Değişen Kolon İsimleri
Tablo Adı | Eski Kolon Adı | Yeni Kolon Adı |
WRK_OBJECTS | WINDOW | WINDOW_TYPE |
Dikkat edilmesi gerekenler
Postgre’de sp ler return yapmaz sadece fonksiyonlar yapar.
Sp’ler fonksiyon olarak tanımlandıklarından cf de kullanılamıyorlar. Kaldırılarak cfquery ye dönüştürülmeliler.
Boolean veri tipinde atanacak değerler cfquery param ya da tırnak içinde kullanılır.
cfqueryparam nvarchar yoktur, varchar olmalı. cf_workcube_query_param yazılacak.
TOP kullanılamaz ORDER BY ile birlikte OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY
String birleştirmelerde + kullanımı yoktur, || kullanılır. Doğrudan CONCAT kullanılmalı.
OUTER APPLY ile yazılmış sorgularda OUTER APPLY kısmı subquery olarak düzenlenmelidir.
Schema Yetkilendirme
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA workcube_dev TO workcube_dev;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA workcube_dev TO workcube_dev;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA workcube_dev TO workcube_dev;
Sql Functions
Year, month, day, format fonksiyonları yerine WMO/sqlFunctions.cfc içerisindeki cfml fonksiyonları kullanılmalı.