首页 > 解决方案 > 需要一些关于 LC_COLLATE 和 LC_CTYPE 的说明

问题描述

我已经阅读了官方的 postgres 文档以了解 LC_COLLATE 和 LC_TYPE。但是,我仍然没有正确理解它。

任何人都可以帮助我理解这些概念和这些概念的影响,特别是当我们尝试加载编码 WE8ISO8859P15 的 oracle 和 postgres 编码为 utf-8 且 collat​​ion/ctype 为 en_US.UTF-8 的数据时。

提前致谢

标签: postgresqloraclecharacter-encodingcharacter-set

解决方案


这是“语言环境”的一部分,即国家语言支持,与编码不同(但语言环境必须属于编码)。

LC_CTYPE确定哪些字符是字母、数字、空格字符、标点符号等。不同的语言对此有不同的想法。

LC_COLLATE确定如何比较和排序字符串。

第一个对 PostgreSQL 的行为影响不大,但第二个非常相关:它决定了字符串列上的 b-tree 索引如何排序(这就是为什么在创建数据库后不能更改它的原因)以及如何对ORDER BY字符串进行排序默认(用户直接可见)。


推荐阅读