Sybase 데이터베이스의 문자 깨짐 문제를 해결하는 방법에 대한 자세한 설명
테스트 데이터베이스 서버를 구축할 때 문자가 깨져 보이는 현상이 발생했습니다. 개발 데이터베이스 서버가 이미 설치되어 있고 문자 집합이 일찍 설정되었기 때문에 이러한 문제는 이전에는 발생하지 않았습니다. 테스트 환경이 배포되었을 때 데이터베이스가 구성되었고 모든 초기화 스크립트가 실행되었으며 테스트 데이터베이스를 구축하기 위해 IE를 열었을 때 프로젝트가 성공적으로 배포되었습니다. 개발 데이터베이스 서버를 설치하고 캐릭터 셋을 설정한 지 오래되어서, 당시 테스트 환경을 배포할 때만 이런 문제가 나타났습니다. , 데이터베이스가 구성되고 모든 초기화 스크립트가 실행되었으며 프로젝트가 성공했습니다. WebLogic에 배포하고 IE를 열고 프로그램을 실행했지만 검색 후 데이터베이스에서 읽은 모든 데이터가 깨졌습니다. 인터넷에서 관련 정보를 얻으려면 문자 집합을 설정해야 하지만 처음에 찾은 정보는 기본적으로 지원됩니다. 문자 집합을 설정하는 방법에 대한 체계적인 설명이 없습니다. 다만 제대로 이해가 안됐을 뿐이고, 콘솔과 SQL 플랫폼마저도 깨져서 도저히 알 수 없어서 전문가에게 물어보니, 문자셋에 대해 구체적으로 설명하는 문서를 보내주셨네요. 그의 도움으로 캐릭터가 왜곡되는 문제가 마침내 해결되었습니다.
문자셋 설정 과정을 요약하자면:
1. Sybase 설치 후 CP936으로 문자셋을 설정하려면 먼저 문자셋을 설치해야 합니다. Sybase 이 문자 세트는 기본 문자 세트 테이블에 존재하지 않기 때문에 설치 단계는 다음과 같습니다. (여기서 SYBASE 설치 경로는 c: sybase입니다.) 1. c: gt cd sybasecharsetscp936 2. c: sybasecharsetscp936gt;; charset -Usa -Psa_pass -Sserver_name binary.srt cp936은 위 명령을 통해 Sybase 시스템 문자 집합 테이블에 CP936 문자 집합을 성공적으로 설치했지만, 설치 결과를 보려면 Sybase 서비스를 두 번 다시 시작해야 합니다. master 데이터베이스의 syscharsets 테이블을 확인하면 성공적으로 설치되었음을 알 수 있습니다: 1002, 171, 0, 1, 'cp936', 'CP936 (Simplified Chinese).',
2 . CP936의 번호가 171인 것을 확인하면 다음 그림과 같이 Sybase 속성에서 시스템 문자 집합을 이 ID로 설정해야 합니다.
문자 설정 후 오류가 발생하는 경우 통합의 경우, 마스터 데이터베이스의 테이블스페이스는 기본적으로 수백K의 공간만 할당하기 때문입니다. 새로 가져오기 데이터 이후의 공간이 부족하므로 마스터 데이터베이스에 대해 더 큰 테이블스페이스를 설정해야 합니다. 마스터 데이터베이스의 속성을 클릭하고, 테이블스페이스의 탭 페이지를 선택하고, 원본 테이블스페이스를 편집하고, 크기를 재분배하고, 모든 테이블스페이스를 할당하면 이 문제를 해결할 수 있습니다.
3. 문자셋을 설정한 후 초기화 스크립트를 실행할 수 있습니다. 여기에는 몇 가지 사소한 에피소드가 있었는데, 두 번째 단계의 테이블 공간 부족에 대한 오류는 어떤 문서에서도 설명되지 않았기 때문에 Guo Liying과 저는 이에 대해 전혀 알지 못했습니다. 그냥 재설치도 가능했는데 설치 후에도 문제가 계속 발생해서 나중에 전문가에게 도움을 요청했더니 테이블 스페이스에 문제가 있다는 것을 알게 되었습니다. set, IE를 열었을 때 여전히 코드가 왜곡되어 있는데, 나중에 다시 시도해보니 기본 문자 집합이 Cp850이어서 스크립트가 실행되었기 때문입니다. 이 문자 세트에서는 CP936 환경에서 읽을 때 깨질 수 있습니다. 따라서 CP936 환경에서 스크립트를 다시 실행하면 더 이상 문제가 발생하지 않습니다.