2010-08-24 17 views
15

Ho provato a memorizzare la stringa araba nel database SQL 2008 ma è stata convertita in "punto interrogativo" perché? e cosa dovrei fare?archivio arabo nel database SQL

+0

E ' database mysql o mio database sql? – Kashif

+0

sql 2008 database non mio sql scusa per questo errore di sintassi – kartal

+0

Stavi cercando di memorizzare i caratteri arabi in colonne di tipo '(var) char' o' n (var) char'? –

risposta

43

è necessario scegliere una collazione araba per i tuoi VARCHAR/colonne char o utilizzare 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 

Returns

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

Per visualizzare un elenco di regole di confronto arabi utilizzare

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

grazie mille così tanto – kartal

+3

Sei FANTASTICO !! Apprezzo molto !! Ho intenzione di aggiungere la tua risposta al mio blog. –

+0

utilizzando tipi di dati Unicode come (nchar/nvarchar) è stato abbastanza, grazie mille Martin – newComer

-6

Iti è facile da memorizzare la stringa araba in Oracle. Usa questo codice:

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

Quanto sopra salverà in Oracle bene.

+1

Perché la tua risposta menziona Oracle? – Ben

+2

@Akram, si prega di leggere la domanda. – Storm

1

È possibile modificare le regole di confronto a livello di database, invece di cambiare per ogni colonna nel database:.

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

valori Inserisci nella tabella (colonna) (N 'xxx'))

si dovrebbe mettere N prima stringa per renderlo unicode

6

Tutto quello che dovete fare è fare in modo che

il column Data type è nvarchar()

enter image description here

dopo che ho inserito l'arabo senza problemi

enter image description here

0

assicurarsi che tutte le tabelle e varchar colonne hanno le regole di confronto utf8_general_ci

Problemi correlati