Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-09-24 GMT+08:00

Opções de LC_COLLATE e LC_CTYPE

Esta seção descreve como especificar LC_COLLATE (ordem de classificação de sequência de caracteres) e LC_CTYPE (classificação de caracteres) usando CREATE DATABASE.

Consulta de conjuntos de caracteres suportados por LC_COLLATE e LC_CTYPE

Execute a seguinte instrução SQL para consultar conjuntos de caracteres (também chamados de codificações) suportados por LC_COLLATE e LC_CTYPE:

SELECT pg_encoding_to_char(collencoding) AS encoding,collname,collcollate AS "LC_COLLATE",collctype AS "LC_CTYPE" FROM pg_collation;

Se encoding estiver vazia, LC_COLLATE suportará todos os conjuntos de caracteres.

Configurar o agrupamento de um banco de dados em um local

As informações de agrupamento incluem LC_COLLATE e LC_CTYPE. Para mais detalhes, consulte a documentação oficial.

  • LC_COLLATE

    O valor padrão é en_US.utf8.

    A comparação da mesma cadeia em diferentes agrupamentos pode ter resultados diferentes.

    Por exemplo, depois de executar SELECT 'a'>'A';, o resultado será false se esse parâmetro for definido como en_US.utf8 e o resultado será true se esse parâmetro for definido como C. Se você precisar migrar um banco de dados do Oracle para o RDS for PostgreSQL, defina LC_COLLATE como C. Você pode consultar os agrupamentos suportados na tabela pg_collation.

  • LC_CTYPE

    Ele é usado para classificar se um caractere é um dígito, letra maiúscula, letra minúscula e assim por diante. Você pode consultar as classificações de caracteres suportadas na tabela pg_collation.

Como usar

Execute o seguinte comando para criar um banco de dados com LC_COLLATE e LC_CTYPE definido como zh_CN.utf8:

CREATE DATABASE my_db WITH ENCODING = 'UTF8' LC_COLLATE ='zh_CN.utf8' LC_CTYPE ='zh_CN.utf8' TEMPLATE = template0 ;

Se LC_COLLATE especificado for incompatível com o conjunto de caracteres, informações de erro semelhantes às seguintes serão exibidas:

  1. Os LC_COLLATE e LC_CTYPE especificados devem ser compatíveis com o conjunto de caracteres de destino. Caso contrário, um erro é relatado.
  2. As configurações de LC_COLLATE e LC_CTYPE de um banco de dados existente não podem ser alteradas executando a instrução ALTER DATABASE. Você pode alterá-las ao criar um novo banco de dados e, em seguida, importar seus dados para o novo banco de dados.