토토 핫지원은 알파벳, 정렬, 숫자 형식 등에 관한 문화적 선호도에 관한 응용 프로그램을 말합니다.PostgreSQL표준 ISO C 및 사용posix서버 운영 체제가 제공하는 토토 핫 시설. 추가 정보는 시스템 문서를 참조하십시오.
데이터베이스 클러스터를 사용하여 생성 될 때 토토 핫 지원이 자동으로 초기화됩니다initdb
. initdb
기본적으로 실행 환경의 토토 핫 설정으로 데이터베이스 클러스터를 초기화하므로 시스템이 이미 데이터베이스 클러스터에서 원하는 토토 핫을 사용하도록 설정된 경우 다른 일이 필요하지 않습니다. 다른 토토 핫을 사용하려면 (또는 시스템이 설정되었는지 확실하지 않으면 지시 할 수 있습니다initdb
정확히 어떤 토토 핫을 지정하여 사용할 토토 핫-토토 핫
옵션. 예를 들어:
initdb -locale = sv_se
UNIX 시스템 의이 예제는 토토 핫을 스웨덴어로 설정합니다 (SV
9976_9999SE
). 다른 가능성은 다음과 같습니다.en_us
(U.S. English) 및FR_CA
(프랑스 캐나다). 토토 핫에 둘 이상의 문자 세트를 사용할 수 있다면 사양이 양식을 취할 수 있습니다language_territory.codeset
. 예를 들어,fr_be.utf-8
벨기에에서 사용 된 프랑스어 (FR)를 대표하고UTF-8문자 세트 인코딩.
운영 체제 공급 업체가 제공 한 내용 및 설치 한 내용에 따라 이름으로 시스템에서 사용할 수있는 토토 핫. 대부분의 UNIX 시스템에서 명령토토 핫 -A
사용 가능한 토토 핫 목록을 제공합니다. Windows는와 같은 더 많은 장황한 토토 핫 이름을 사용합니다.german_germany
또는Swedish_sweden.1252
그러나 원칙은 동일합니다.
때로는 여러 지역의 규칙을 혼합하는 것이 유용합니다. 예를 들어 영어 통합 규칙을 사용하지만 스페인 메시지를 사용합니다. 이를 뒷받침하기 위해 현지화 규칙의 특정 측면 만 제어하는 일련의 토토 핫 하위 범주가 존재합니다.
LC_COLLATE |
문자열 정렬 순서 |
LC_CTYPE |
캐릭터 분류 (문자 란 무엇입니까? 상위 상위 동등한가?) |
lc_messages |
메시지 언어 |
lc_monetary |
통화 형식 |
lc_numeric |
숫자 형식 |
LC_TIME |
날짜와 시간의 형식 |
카테고리 이름은의 이름으로 번역됩니다initdb
특정 범주에 대한 토토 핫 선택을 무시할 수있는 옵션. 예를 들어, 토토 핫을 프랑스 캐나다인으로 설정하지만 통화 서식에 미국 규칙을 사용하려면 사용initdb ---locale = fr_ca ---lc-monetary = en_us
.
시스템이 토토 핫 지원이없는 것처럼 행동하지 않으려면 특별 토토 핫 이름을 사용하십시오C
또는 동등하게posix
.
일부 토토 핫 범주에는 데이터베이스가 생성 될 때 값이 고정되어 있어야합니다. 다른 데이터베이스에 대해 다른 설정을 사용할 수 있지만 데이터베이스가 생성되면 해당 데이터베이스에 대해 더 이상 변경할 수 없습니다.LC_COLLATE
andLC_CTYPE
이 범주입니다. 인덱스의 정렬 순서에 영향을 미치므로 고정 된 상태로 유지해야합니다. 그렇지 않으면 텍스트 열의 인덱스가 손상 될 수 있습니다.섹션 24.2.)이 범주의 기본값은 결정됩니다.initdb
실행 중이며 해당 값은 새 데이터베이스를 작성할 때 사용됩니다.데이터베이스 생성
명령.
다른 토토 핫 카테고리는 토토 핫 범주와 동일한 이름을 가진 서버 구성 매개 변수를 설정하여 원하는 때마다 변경할 수 있습니다 (참조섹션 20.11.2자세한 내용). 선택한 값initdb
실제로 구성 파일에만 기록됩니다postgresql.conf
서버가 시작될 때 기본값으로 사용합니다. 이 과제를 제거하면postgresql.conf
그러면 서버는 실행 환경에서 설정을 상속합니다.
서버의 토토 핫 동작은 클라이언트의 환경이 아니라 서버가 보이는 환경 변수에 의해 결정됩니다. 따라서 서버를 시작하기 전에 올바른 토토 핫 설정을 구성하도록주의하십시오.
우리가 실행 환경에서 토토 핫을 물려받는 것에 대해 말할 때, 이것은 대부분의 운영 체제에서 다음을 의미합니다. 이는 주어진 토토 핫 카테고리의 경우, 다음 환경 변수가 설정 될 때 까지이 순서로 문의합니다.LC_ALL
, LC_COLLATE
(또는 각 범주에 해당하는 변수),Lang
. 이러한 환경 변수 중 어느 것도 설정되지 않으면 토토 핫 기본값은C
.
일부 메시지 현지화 라이브러리도 환경 변수를 봅니다언어
메시지 언어를 설정하기 위해 다른 모든 토토 핫 설정을 무시합니다. 의심스러운 경우, 운영 체제의 문서, 특히에 대한 문서를 참조하십시오.getText.
메시지를 사용자의 선호 언어로 번역 할 수 있도록NLS빌드 시간에 선택되어 있어야합니다 (구성 -enable-nls
). 다른 모든 토토 핫 지원은 자동으로 내장되어 있습니다.
토토 핫 설정은 다음 SQL 기능에 영향을 미칩니다.
| 이외의 지역을 사용하는 단점C
또는posix
inPostgreSQL성능 영향입니다. 그것은 문자 취급 속도를 늦추고 일반 인덱스가 사용되는 것을 방지합니다좋아요
. 이런 이유로 실제로 필요한 경우에만 토토 핫을 사용하십시오.
허용 해결 방법으로PostgreSQL좋아요
클로즈가 아닌 토토 핫의 조항에는 여러 맞춤형 운영자 클래스가 있습니다. 이를 통해 토토 핫 비교 규칙을 무시하고 엄격한 문자 별 비교를 수행하는 색인을 생성 할 수 있습니다.섹션 11.10자세한 내용. 또 다른 방법은를 사용하여 인덱스를 만드는 것입니다.C
Collation에서 논의 된대로PostgreSQL : 문서 : 15 : 24.2. 와이즈 토토 Support.
토토 핫은 요구 사항에 따라 다른 스코프로 선택할 수 있습니다. 위의 개요는 토토 핫이를 사용하여 어떻게 지정되는지 보여주었습니다.initdb
전체 클러스터의 기본값을 설정합니다. 다음 목록은 토토 핫을 선택할 수있는 위치를 보여줍니다.
위에서 설명한대로 운영 체제의 환경은 새로 초기화 된 데이터베이스 클러스터의 로컬에 대한 기본값을 제공합니다. 대부분의 경우 충분합니다 : 운영 체제가 원하는 언어/영토에 대해 구성된 경우PostgreSQL기본적으로 해당 토토 핫에 따라 행동합니다.
위에 표시된대로, 명령 줄 옵션initdb
새로 초기화 된 데이터베이스 클러스터의 토토 핫 설정을 지정합니다. 운영 체제에 데이터베이스 시스템에 원하는 토토 핫 구성이없는 경우 사용하십시오.
각 데이터베이스에 대해 토토 핫을 별도로 선택할 수 있습니다. SQL 명령데이터베이스 생성
및 그 명령 줄 동등한createb
이를위한 옵션이 있습니다. 예를 들어 데이터베이스 클러스터가 요구 사항이 다른 여러 임차인에 대한 데이터베이스가있는 경우
개별 테이블 열에 대해 토토 핫 설정을 만들 수 있습니다. 이것은라는 SQL 객체를 사용합니다.Collation그리고에 설명되어 있습니다.PostgreSQL : 문서 : 15 : 24.2. 와이즈 토토 Support. 예를 들어이 방법을 사용하여 데이터를 다른 언어로 정렬하거나 특정 테이블의 정렬 순서를 사용자 정의합니다..
마지막으로, 개별 쿼리에 대해 토토 핫을 선택할 수 있습니다. 다시, 이것은 SQL Collation 객체를 사용합니다.
PostgreSQL다중 지원토토 핫 제공 업체. 이것은 토토 핫 데이터를 공급하는 라이브러리를 지정합니다.LIBC
, 운영 체제 C 라이브러리가 제공하는 토토 핫을 사용합니다. 이들은 운영 체제에서 제공하는 대부분의 도구에서 사용하는 토토 핫입니다.ICU
, 외부 ICU를 사용하는도서관. ICU 토토 핫은 PostgreSQL을 구축 할 때 ICU에 대한 지원이 구성된 경우에만 사용할 수 있습니다.
위에서 설명한대로 토토 핫 설정을 선택하는 명령 및 도구에는 각각 토토 핫 제공 업체를 선택할 수있는 옵션이 있습니다. 이전에 표시된 예제는 모두를 사용합니다.LIBC
제공자는 기본값입니다. 다음은 ICU 제공 업체를 사용하여 데이터베이스 클러스터를 초기화하는 예입니다.
initdb-locale-provider = ICU --ICU-locale = en
자세한 내용은 각 명령 및 프로그램에 대한 설명을 참조하십시오. 토토 핫 제공 업체가 다른 세분화에서 혼합 할 수 있습니다 (예 : 사용).LIBC
클러스터의 경우 기본적으로를 사용하는 데이터베이스가 하나 있습니다.ICU
공급자, 그리고 해당 데이터베이스 내에 어떤 공급자를 사용하여 콜레이션 객체를 가지고 있습니다.
사용하는 토토 핫 제공 업체는 개별 요구 사항에 따라 다릅니다. 대부분의 기본 용도의 경우 어느 하나의 공급자가 적절한 결과를 제공합니다.
위의 설명에 따라 토토 핫 지원이 작동하지 않으면 운영 체제의 토토 핫 지원이 올바르게 구성되어 있는지 확인하십시오. 시스템에 어떤 지역이 설치되어 있는지 확인하려면 명령을 사용할 수 있습니다토토 핫 -A
운영 체제가 제공하는 경우.
확인PostgreSQL실제로 당신이 생각하는 토토 핫을 사용하고 있습니다. 그만큼LC_COLLATE
andLC_CTYPE
설정은 데이터베이스가 생성 될 때 결정되며 새 데이터베이스를 작성하는 것 외에는 변경할 수 없습니다. 를 포함한 기타 토토 핫 설정lc_messages
andlc_monetary
처음에는 서버가 시작된 환경에 의해 결정되었지만 비행 중에 변경할 수 있습니다. 를 사용하여 활성 토토 핫 설정을 확인할 수 있습니다.show
명령.
디렉토리src/test/locale
소스 배포에는 테스트 스위트가 포함되어 있습니다.PostgreSQL'S Locale Support.
오류 메시지의 텍스트를 구문 분석하여 서버 측 오류를 처리하는 클라이언트 응용 프로그램은 서버의 메시지가 다른 언어에있을 때 분명히 문제가 있습니다. 이러한 응용 프로그램의 저자는 오류 코드 체계를 대신 사용하는 것이 좋습니다.
메시지 번역 카탈로그 유지하려면보고 싶은 많은 자원 봉사자들의 지속적인 노력이 필요합니다PostgreSQL선호하는 언어를 잘 말하십시오. 언어로 된 메시지가 현재 사용할 수 없거나 완전히 번역되지 않은 경우 도움을 주시면 감사하겠습니다.토토 베이 : 문서 : 15 : 57 장. 모국어 지원또는 개발자의 메일 링리스트에 쓰기.
문서에 올바른 것이 없으면 일치하지 않습니다.이 양식문서 문제를보고하려면