2009-08-07 9 views
34

Se sono presenti campi di tipo di dati NVARCHAR (o NTEXT) in un database Microsoft SQL Server, quale sarebbe il tipo di dati equivalente in un database PostgreSQL?Qual è l'equivalente PostgreSQL a SQL Server NVARCHAR?

+1

Si prega di non dare per scontato che tutti sappiano cosa "NVARCHAR/NTEXT" in MS SQL. Se vuoi ottenere informazioni reali - devi fornire maggiori informazioni - che cos'è questo tipo di dati. Personalmente non ho idea di cosa sia questo tipo di dati, cosa può memorizzare (testi, credo), quali sono i suoi limiti e così via. –

+0

@depesz - mi dispiace, sono stringhe di caratteri Unicode. Vedi http://msdn.microsoft.com/en-us/library/aa258271(SQL.80).aspx per le definizioni. – kevinw

risposta

29

Sono abbastanza sicuro Postgres varchar è lo stesso di Oracle/Sybase/MSSQL nvarchar anche se non è esplicito nel manuale: funzioni di conversione

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

di codifica sono qui:

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

Esempio:

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

Inoltre, v'è this response ad una domanda simile da un rappresentante di PostgreSQL:

Tutti i nostri tipi di dati di testo vengono multibyte-grado, a patto di aver installato correttamente PostgreSQL.
Ciò include: TESTO (consigliato) VARCHAR CAR

9

E 'varchar e testo, supponendo che il database è in codifica Unicode. Se il tuo database è in una codifica non UNICODE, non esiste un tipo di dati speciale che ti fornisca una stringa unicode: puoi memorizzarla come uno stream bytea, ma non sarà una stringa.

6

Il tipo di dati TEXT standard è perfetto per questo.

Problemi correlati