programing

SQL 데이터베이스에 아랍어 저장

instargram 2023. 7. 31. 21:03
반응형

SQL 데이터베이스에 아랍어 저장

SQL 2008 데이터베이스에 아랍어 문자열을 저장하려고 했지만 "question mark"로 변환되었습니다. 왜요? 그리고 어떻게 해야 하나요?

varchar/char 열에 대한 아랍어 조합을 선택하거나 유니코드(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'لا أتكلم العربية')

위의 삽입 문 앞에 N을 기록합니다.이를 언급하지 않으면 시스템에서 값을 NVarchar가 아닌 Varchar로 처리합니다.

SELECT * FROM #test

돌아온다

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

아랍어 조합 목록을 보려면 다음을 사용합니다.

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

당신이 해야 할 일은 당신이 해야 할 모든 것은

column Data type이라nvarchar()

enter image description here

그 후 아랍어를 삽입했는데 문제가 없었습니다.

enter image description here

데이터베이스의 각 열에 대해 변경하는 대신 데이터베이스 수준에서 데이터 정렬을 변경할 수 있습니다.

USE master;
GO
ALTER DATABASE TestDB
COLLATE Arabic_CI_AI;
GO

표(열) 값(N'xxx')에 삽입합니다.

유니코드로 만들려면 문자열 앞에 N을 넣어야 합니다.

모든 값 앞에 'N'을 추가합니다.예:

INSERT INTO table1 VALUES(N'aaaaaaaaa',N'ששששששששששששש',N'aaaaaaaaaaa',N'ششششششششششش')

사용해 보십시오.
데이터 유형 열:nvarchar()

INSERT INTO CompanyMaster values(N'" + txtCompNameAR.Text + "',N'" + txtCompAddressAR.Text + "','" + txtPh.Text + "')

이것은 도움이 되지만 여기서 일하는 것이 모든 경우에 나에게 도움이 됩니다.

ALTER DATABASE [database] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 
GO 

ALTER DATABASE [database] COLLATE ARABIC_CI_AS; 
GO 

ALTER DATABASE [database] SET MULTI_USER; 
GO 

업데이트: 결국 프로젝트에서 데이터 유형 varchar를 nvarchar로 변경해야 합니다.

모든 테이블과varchar열에는 다음과 같은 조합이 있습니다.utf8_general_ci

오라클에서 아랍어 문자열을 저장하는 것은 쉽습니다.다음 코드 사용:

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

위의 내용은 Oracle에서 저장할 수 있습니다.

언급URL : https://stackoverflow.com/questions/3560173/store-arabic-in-sql-database

반응형