我在共享主机上有一个 PostgreSQL 数据库,使用的结果upper
由于区域设置的原因,我的本地数据库中的函数有所不同。
这是我想要的,并且在我的本地环境中拥有:
SELECT version();
-- "PostgreSQL 8.4.16 on i386-apple-darwin10.8.0, compiled by GCC i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3), 64-bit"
SHOW LC_COLLATE;
-- "fr_FR.UTF-8"
SELECT upper('étienne');
-- "ÉTIENNE"
这是我在生产环境中的情况:
SELECT version();
-- "PostgreSQL 9.0.13 on x86_64-pc-linux-gnu, compiled by GCC gcc-4.3.real (Debian 4.3.2-1.1) 4.3.2, 64-bit"
SHOW LC_COLLATE;
-- "C"
SELECT upper('étienne');
-- éTIENNE
现在,由于生产环境位于共享主机中,因此由于主机策略,我无法更改区域设置。那么,在使用upper函数时,有没有其他方法可以达到预期的结果呢?
对于 9.1 及更高版本,您只需在本地选择排序规则即可进行查询。
遗憾的是,考虑到您的版本号,这需要升级,因此可能有帮助,也可能没有帮助。
SELECT UPPER('étienne' COLLATE "C") C_Collation,
UPPER('étienne' COLLATE "fr_FR") FR_Collation;
C_Collation FR_Collation
--------------------------------------
éTIENNE ÉTIENNE
用于测试的 SQLfiddle.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)