2009-08-07 15 views
34

Si tengo campos de tipo NVARCHAR (o NTEXT) en una base de datos Microsoft SQL Server, ¿cuál sería el tipo de datos equivalente en una base de datos PostgreSQL?¿Qué es el equivalente de PostgreSQL a SQL Server NVARCHAR?

+1

No asuma que todo el mundo sabe qué "NVARCHAR/NTEXT" en MS SQL. Si desea obtener información real, debe proporcionar más información, qué es este tipo de datos. Personalmente, no tengo idea de qué es este tipo de datos, qué puede almacenar (textos, supongo), cuáles son sus límites, etc. –

+0

@depesz - lo siento, son cadenas de caracteres Unicode. Consulte http://msdn.microsoft.com/en-us/library/aa258271(SQL.80).aspx para obtener las definiciones. – kevinw

Respuesta

29

Estoy bastante seguro de postgres varchar es la misma que Oracle/Sybase nvarchar/MSSQL a pesar de que no es explícita en el manual: funciones de conversión

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

de codificación están aquí:

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

Ejemplo:

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

Además, hay this response a una pregunta similar de un representante de PostgreSQL:

Todos nuestros tipos de datos de texto son capaces multibyte, siempre y cuando haya instalado PostgreSQL correctamente.
Esto incluye: TEXTO (recomendado) VARCHAR CHAR

9

Es varchar y texto, asumiendo que su base de datos está en la codificación UNICODE. Si su base de datos está en una codificación no UNICODE, no hay ningún tipo de datos especial que le proporcione una cadena Unicode; puede almacenarla como una secuencia bytea, pero eso no será una cadena.

6

El tipo de datos TEXT estándar está perfectamente bien para ello.

Cuestiones relacionadas