24.1. 토토 핫 지원

토토 핫지원은 알파벳, 정렬, 숫자 형식 등에 관한 문화적 선호도에 관한 응용 프로그램을 말합니다.PostgreSQL표준 ISO C 및 사용posix서버 운영 체제가 제공하는 토토 핫 시설. 추가 정보는 시스템 문서를 참조하십시오.

24.1.1. 개요

데이터베이스 클러스터를 사용하여 생성 될 때 토토 핫 지원이 자동으로 초기화됩니다initdb. initdb기본적으로 실행 환경의 토토 핫 설정으로 데이터베이스 클러스터를 초기화하므로 시스템이 이미 데이터베이스 클러스터에서 원하는 토토 핫을 사용하도록 설정된 경우 다른 일이 필요하지 않습니다. 다른 토토 핫을 사용하려면 (또는 시스템이 설정되었는지 확실하지 않으면 지시 할 수 있습니다initdb정확히 어떤 토토 핫을 지정하여 사용할 토토 핫-토토 핫옵션. 예를 들어:

initdb -locale = sv_se

UNIX 시스템 의이 예제는 토토 핫을 스웨덴어로 설정합니다 (SV9976_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_COLLATEandLC_CTYPE이 범주입니다. 인덱스의 정렬 순서에 영향을 미치므로 고정 된 상태로 유지해야합니다. 그렇지 않으면 텍스트 열의 인덱스가 손상 될 수 있습니다.섹션 24.2.)이 범주의 기본값은 결정됩니다.initdb실행 중이며 해당 값은 새 데이터베이스를 작성할 때 사용됩니다.데이터베이스 생성명령.

다른 토토 핫 카테고리는 토토 핫 범주와 동일한 이름을 가진 서버 구성 매개 변수를 설정하여 원하는 때마다 변경할 수 있습니다 (참조섹션 20.11.2자세한 내용). 선택한 값initdb실제로 구성 파일에만 기록됩니다postgresql.conf서버가 시작될 때 기본값으로 사용합니다. 이 과제를 제거하면postgresql.conf그러면 서버는 실행 환경에서 설정을 상속합니다.

서버의 토토 핫 동작은 클라이언트의 환경이 아니라 서버가 보이는 환경 변수에 의해 결정됩니다. 따라서 서버를 시작하기 전에 올바른 토토 핫 설정을 구성하도록주의하십시오.

note

우리가 실행 환경에서 토토 핫을 물려받는 것에 대해 말할 때, 이것은 대부분의 운영 체제에서 다음을 의미합니다. 이는 주어진 토토 핫 카테고리의 경우, 다음 환경 변수가 설정 될 때 까지이 순서로 문의합니다.LC_ALL, LC_COLLATE(또는 각 범주에 해당하는 변수),Lang. 이러한 환경 변수 중 어느 것도 설정되지 않으면 토토 핫 기본값은C.

일부 메시지 현지화 라이브러리도 환경 변수를 봅니다언어메시지 언어를 설정하기 위해 다른 모든 토토 핫 설정을 무시합니다. 의심스러운 경우, 운영 체제의 문서, 특히에 대한 문서를 참조하십시오.getText.

메시지를 사용자의 선호 언어로 번역 할 수 있도록NLS빌드 시간에 선택되어 있어야합니다 (구성 -enable-nls). 다른 모든 토토 핫 지원은 자동으로 내장되어 있습니다.

24.1.2. 행동

토토 핫 설정은 다음 SQL 기능에 영향을 미칩니다.

  • 쿼리로 순서를 정렬주문 by또는 텍스트 데이터의 표준 비교 연산자

  • the어퍼, LowerInitcap기능

  • 패턴 매칭 연산자 (좋아요, 유사및 Posix 스타일 정규식); 토토 핫은 사례 무감각 일치와 캐릭터 클래스 정규 표현에 의한 문자 분류에 영향을 미칩니다

  • theto_char기능 가족

  • 인덱스를 사용하는 능력좋아요Clauses

| 이외의 지역을 사용하는 단점C또는posixinPostgreSQL성능 영향입니다. 그것은 문자 취급 속도를 늦추고 일반 인덱스가 사용되는 것을 방지합니다좋아요. 이런 이유로 실제로 필요한 경우에만 토토 핫을 사용하십시오.

허용 해결 방법으로PostgreSQL좋아요클로즈가 아닌 토토 핫의 조항에는 여러 맞춤형 운영자 클래스가 있습니다. 이를 통해 토토 핫 비교 규칙을 무시하고 엄격한 문자 별 비교를 수행하는 색인을 생성 할 수 있습니다.섹션 11.10자세한 내용. 또 다른 방법은를 사용하여 인덱스를 만드는 것입니다.CCollation에서 논의 된대로PostgreSQL : 문서 : 15 : 24.2. 와이즈 토토 Support.

24.1.3. 지역 선택

토토 핫은 요구 사항에 따라 다른 스코프로 선택할 수 있습니다. 위의 개요는 토토 핫이를 사용하여 어떻게 지정되는지 보여주었습니다.initdb전체 클러스터의 기본값을 설정합니다. 다음 목록은 토토 핫을 선택할 수있는 위치를 보여줍니다.

  1. 위에서 설명한대로 운영 체제의 환경은 새로 초기화 된 데이터베이스 클러스터의 로컬에 대한 기본값을 제공합니다. 대부분의 경우 충분합니다 : 운영 체제가 원하는 언어/영토에 대해 구성된 경우PostgreSQL기본적으로 해당 토토 핫에 따라 행동합니다.

  2. 위에 표시된대로, 명령 줄 옵션initdb새로 초기화 된 데이터베이스 클러스터의 토토 핫 설정을 지정합니다. 운영 체제에 데이터베이스 시스템에 원하는 토토 핫 구성이없는 경우 사용하십시오.

  3. 각 데이터베이스에 대해 토토 핫을 별도로 선택할 수 있습니다. SQL 명령데이터베이스 생성및 그 명령 줄 동등한createb이를위한 옵션이 있습니다. 예를 들어 데이터베이스 클러스터가 요구 사항이 다른 여러 임차인에 대한 데이터베이스가있는 경우

  4. 개별 테이블 열에 대해 토토 핫 설정을 만들 수 있습니다. 이것은라는 SQL 객체를 사용합니다.Collation그리고에 설명되어 있습니다.PostgreSQL : 문서 : 15 : 24.2. 와이즈 토토 Support. 예를 들어이 방법을 사용하여 데이터를 다른 언어로 정렬하거나 특정 테이블의 정렬 순서를 사용자 정의합니다..

  5. 마지막으로, 개별 쿼리에 대해 토토 핫을 선택할 수 있습니다. 다시, 이것은 SQL Collation 객체를 사용합니다.

24.1.4. 토토 핫 제공자

PostgreSQL다중 지원토토 핫 제공 업체. 이것은 토토 핫 데이터를 공급하는 라이브러리를 지정합니다.LIBC, 운영 체제 C 라이브러리가 제공하는 토토 핫을 사용합니다. 이들은 운영 체제에서 제공하는 대부분의 도구에서 사용하는 토토 핫입니다.ICU, 외부 ICU를 사용하는도서관. ICU 토토 핫은 PostgreSQL을 구축 할 때 ICU에 대한 지원이 구성된 경우에만 사용할 수 있습니다.

위에서 설명한대로 토토 핫 설정을 선택하는 명령 및 도구에는 각각 토토 핫 제공 업체를 선택할 수있는 옵션이 있습니다. 이전에 표시된 예제는 모두를 사용합니다.LIBC제공자는 기본값입니다. 다음은 ICU 제공 업체를 사용하여 데이터베이스 클러스터를 초기화하는 예입니다.

initdb-locale-provider = ICU --ICU-locale = en

자세한 내용은 각 명령 및 프로그램에 대한 설명을 참조하십시오. 토토 핫 제공 업체가 다른 세분화에서 혼합 할 수 있습니다 (예 : 사용).LIBC클러스터의 경우 기본적으로를 사용하는 데이터베이스가 하나 있습니다.ICU공급자, 그리고 해당 데이터베이스 내에 어떤 공급자를 사용하여 콜레이션 객체를 가지고 있습니다.

사용하는 토토 핫 제공 업체는 개별 요구 사항에 따라 다릅니다. 대부분의 기본 용도의 경우 어느 하나의 공급자가 적절한 결과를 제공합니다.

24.1.5. 문제

위의 설명에 따라 토토 핫 지원이 작동하지 않으면 운영 체제의 토토 핫 지원이 올바르게 구성되어 있는지 확인하십시오. 시스템에 어떤 지역이 설치되어 있는지 확인하려면 명령을 사용할 수 있습니다토토 핫 -A운영 체제가 제공하는 경우.

확인PostgreSQL실제로 당신이 생각하는 토토 핫을 사용하고 있습니다. 그만큼LC_COLLATEandLC_CTYPE설정은 데이터베이스가 생성 될 때 결정되며 새 데이터베이스를 작성하는 것 외에는 변경할 수 없습니다. 를 포함한 기타 토토 핫 설정lc_messagesandlc_monetary처음에는 서버가 시작된 환경에 의해 결정되었지만 비행 중에 변경할 수 있습니다. 를 사용하여 활성 토토 핫 설정을 확인할 수 있습니다.show명령.

디렉토리src/test/locale소스 배포에는 테스트 스위트가 포함되어 있습니다.PostgreSQL'S Locale Support.

오류 메시지의 텍스트를 구문 분석하여 서버 측 오류를 처리하는 클라이언트 응용 프로그램은 서버의 메시지가 다른 언어에있을 때 분명히 문제가 있습니다. 이러한 응용 프로그램의 저자는 오류 코드 체계를 대신 사용하는 것이 좋습니다.

메시지 번역 카탈로그 유지하려면보고 싶은 많은 자원 봉사자들의 지속적인 노력이 필요합니다PostgreSQL선호하는 언어를 잘 말하십시오. 언어로 된 메시지가 현재 사용할 수 없거나 완전히 번역되지 않은 경우 도움을 주시면 감사하겠습니다.토토 베이 : 문서 : 15 : 57 장. 모국어 지원또는 개발자의 메일 링리스트에 쓰기.

정정 제출

문서에 올바른 것이 없으면 일치하지 않습니다.이 양식문서 문제를보고하려면