2009-08-07 16 views
34

, ne PostgreSQL veritabanındaki eşdeğer veri tipi olurdu?SQL Server NVARCHAR için PostgreSQL Eşdeğer nedir? Bir Microsoft SQL Server veritabanı NVARCHAR (veya NTEXT) veri türü alanlarını varsa

http://www.postgresql.org/docs/7.4/static/datatype-character.html

Kodlama dönüştürme işlevleri burada:

+1

Lütfen herkesin MS SQL'de ne "NVARCHAR/NTEXT" olduğunu bilmediğini varsayalım. Gerçek bilgi almak istiyorsanız - bu veri türü ne - Eğer daha fazla bilgi sağlamak zorunda. Bu veri türünün ne olduğunu, neleri saklayabileceğini (metinleri, sanırım), sınırlarını ve neye benzediğini kişisel olarak hiç bilmiyorum. –

+0

@depesz - pardon, onlar Unicode karakter dizeleridir. Tanımlar için http://msdn.microsoft.com/en-us/library/aa258271(SQL.80).aspx adresine bakın. – kevinw

cevap

29

Ben oldukça emin postgres varchar o kılavuzda açık olmamasına rağmen, Oracle/Sybase/MSSQL nvarchar aynıdır değilim http://www.postgresql.org/docs/current/static/functions-string.html http://www.postgresql.org/docs/current/static/functions-string.html#CONVERSION-NAMES

Örnek:

create table 
nvctest (
utf8fld varchar(12) 
); 
insert into nvctest 
select convert('PostgreSQL' using ascii_to_utf_8); 
select * from nvctest; 

Ayrıca, PostgreSQL temsilcisi benzer bir soruya this response vardır:

Tüm METİN veri türlerini, doğru PostgreSQL yükledim sağlanan baytlı özelliğine sahiptir.
Bunlar: (önerilir) METİN VARCHAR CHAR

9

Bu sizin veritabanı varsayarak varchar ve metin var UNICODE kodlamasına sahiptir. Veritabanınız UNICODE olmayan bir kodlamada ise, size bir unicode dize verecek özel bir veri türü yoktur - bunu bir bytea akışı olarak saklayabilirsiniz, ancak bu bir dize olmayacaktır.

6

Standart METİN veri türü bunun için bir sorun oluşturmaz.