2010-08-24 8 views
15

Intenté almacenar cadena árabe en la base de datos SQL 2008 pero se convirtió en "signo de interrogación" ¿por qué? Y que debería hacer ?store arabic en la base de datos SQL

+0

Es base de datos mysql o mi base de datos sql? – Kashif

+0

sql base de datos 2008 no es mi sql lo siento por este error de sintaxis – kartal

+0

¿Estabas tratando de almacenar los caracteres árabes en columnas de tipo '(var) char' o' n (var) char'? –

Respuesta

43

tiene que elegir un cotejo árabe para sus varchar columnas/char o utilizar Unicode (nchar/nvarchar)

CREATE TABLE #test 
(
col1 VARCHAR(100) COLLATE Latin1_General_100_CI_AI, 
col2 VARCHAR(100) COLLATE Arabic_CI_AI_KS_WS, 
col3 NVARCHAR(100) 
) 
INSERT INTO #test VALUES(N'لا أتكلم العربية',N'لا أتكلم العربية',N'لا أتكلم العربية') 

SELECT * FROM #test 

devoluciones

col1       col2       col3 
------------------------------ ------------------------------ ------------------------------ 
?? ????? ???????    لا أتكلم العربية    لا أتكلم العربية 

Para ver una lista de colaciones, árabe utilizar

SELECT name, description 
FROM fn_helpcollations() 
WHERE name LIKE 'Arabic%' 
+0

muchas gracias, así que mucho – kartal

+3

¡Eres INCREÍBLE! Apreciarlo mucho !! Voy a agregar tu respuesta a mi blog. –

+0

usando tipos de datos Unicode como (nchar/nvarchar) fue suficiente, muchas gracias Martin – newComer

-6

Iti es fácil de almacenar cadena árabe en Oracle. Utilice este código:

declare @P_CUSTOMER_NAME nchar(50) 
set @P_CUSTOMER_NAME2=N'أختبار' 

Lo anterior se guardará en Oracle muy bien.

+1

¿Por qué su respuesta menciona a Oracle? – Ben

+2

@Akram, por favor lea la pregunta. – Storm

1

Usted puede cambiar la intercalación en el nivel de base de datos en lugar de cambiar para cada columna de la base de datos:.

USE master; 
GO 
ALTER DATABASE TestDB 
COLLATE Arabic_CI_AI; 
GO 
2

inserto en la tabla (columna) valores (N 'xxx'))

usted debe poner N antes de cadena para que sea unicode

6

Todo lo que tiene que hacer es asegurarse de que

la column Data type es nvarchar()

enter image description here

después de que inserta árabe sin problemas

enter image description here

0

asegurarse de que todas sus tablas y varchar columnas tienen el cotejo de utf8_general_ci

Cuestiones relacionadas