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()
그 후 아랍어를 삽입했는데 문제가 없었습니다.
데이터베이스의 각 열에 대해 변경하는 대신 데이터베이스 수준에서 데이터 정렬을 변경할 수 있습니다.
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
'programing' 카테고리의 다른 글
PL/SQL에 "LIKE %"(예: "variable %")가 있는 변수를 사용하시겠습니까? (0) | 2023.07.31 |
---|---|
모델 클라이언트 유효성 검사 규칙 (0) | 2023.07.31 |
삽입...키 업데이트 문 복제 시 (0) | 2023.07.31 |
동일한 모델의 다른 필드를 기반으로 한 장고 모델 필드 기본값 (0) | 2023.07.31 |
상위 컨테이너로 SVG 스케일을 만들려면 어떻게 해야 합니까? (0) | 2023.07.31 |