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?
risposta
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
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.
Il tipo di dati TEXT standard è perfetto per questo.
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. –
@depesz - mi dispiace, sono stringhe di caratteri Unicode. Vedi http://msdn.microsoft.com/en-us/library/aa258271(SQL.80).aspx per le definizioni. – kevinw