2009-08-07 14 views
34

यदि मेरे पास Microsoft SQL Server डेटाबेस में NVARCHAR (या NTEXT) डेटा प्रकार के फ़ील्ड हैं, तो PostgreSQL डेटाबेस में समतुल्य डेटा प्रकार क्या होगा?SQL सर्वर NVARCHAR के लिए PostgreSQL समतुल्य क्या है?

+1

कृपया यह न मानें कि सभी जानते हैं कि एमएस एसक्यूएल में "NVARCHAR/NTEXT" क्या है। यदि आप वास्तविक जानकारी प्राप्त करना चाहते हैं - आपको अधिक जानकारी प्रदान करनी है - यह डेटाटाइप क्या है। मुझे व्यक्तिगत रूप से पता नहीं है कि यह डेटाटाइप क्या है, यह क्या स्टोर कर सकता है (ग्रंथ, मुझे लगता है), इसकी सीमाएं क्या हैं, और इसी तरह। –

+0

@depesz - क्षमा करें, वे यूनिकोड चरित्र तार हैं। परिभाषाओं के लिए http://msdn.microsoft.com/en-us/library/aa258271(SQL.80).aspx देखें। – kevinw

उत्तर

29

मैं यकीन है कि postgres varchar ओरेकल/Sybase/MSSQL nvarchar रूप में ही है, भले ही यह मैनुअल में स्पष्ट नहीं है:

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

एन्कोडिंग रूपांतरण कार्यों यहां हैं:

http://www.postgresql.org/docs/current/static/functions-string.html http://www.postgresql.org/docs/current/static/functions-string.html#CONVERSION-NAMES

उदाहरण:

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

इसके अलावा, वहाँ एक Postgresql प्रतिनिधि की ओर से एक ऐसी ही सवाल का this response है:

सभी हमारे पाठ डेटाटाइप्स की multibyte-सक्षम, आप सही ढंग से स्थापित किया है PostgreSQL प्रदान की है।
इसमें शामिल हैं: पाठ (अनुशंसित) VARCHAR CHAR

9

यह varchar और पाठ, अपने डेटाबेस संभालने का यूनिकोड एन्कोडिंग में है। यदि आपका डेटाबेस गैर-यूनिकोड एन्कोडिंग में है, तो कोई विशेष डेटाटाइप नहीं है जो आपको एक यूनिकोड स्ट्रिंग देगा - आप इसे बाइटा स्ट्रीम के रूप में स्टोर कर सकते हैं, लेकिन यह एक स्ट्रिंग नहीं होगी।

6

मानक टेक्स्ट डेटाटाइप इसके लिए बिल्कुल ठीक है।

संबंधित मुद्दे