Windows
如何強制 Windows 支持 PostgreSQL 中不支持的 LC_COLLATE 和 LC_TYPE?
我全新安裝了 PostgreSQL 9.1.x。不幸的是,我發現作業系統不支持
LC_COLLATE = 'pl_PL.utf8'
和LC_CTYPE = 'pl_PL.utf8'
. 我在 PostgreSQL 文件中讀到:在所有平台上,名為 default、C 和 POSIX 的排序規則都可用。根據作業系統支持,可能會提供其他排序規則。
但是,有一種方法可以強制 Windows 支持該語言環境嗎?我的意思是更新檔,外掛或其他東西。
在 Windows 上,可能已經安裝了所需的語言環境,只是名稱與Unix 上不同。
例如,以下數據庫創建似乎對我在我的 Windows XP 上使用 PG9.1 工作正常,它的預設語言環境
French_France.1252
和沒有安裝我記得的其他語言包。CREATE DATABASE pldb ENCODING = 'UTF8' LC_COLLATE = 'Polish' LC_CTYPE = 'Polish' TEMPLATE=template0;
此外,通過在這個新創建的數據庫中以 UTF8 格式送出此查詢來快速測試排序順序:
select * from (values ('z'), ('ź'), ('ż'), ('s'), ('ś'), ('x'), ('y')) as letters order by 1;
似乎輸出正確的結果:
s
ś
x
y
z
ź
ż
據我所知,您不能強制 Windows 版本的 PostgreSQL 支持 Windows 不提供的語言環境和排序規則。PostgreSQL 使用系統語言環境和排序規則支持。如果系統不支持,則無法使用。有時這是一個令人沮喪的限制,但它是如何發生的。您需要選擇 Windows 安裝支持的合適編碼和排序規則。
如果您想為作業系統排序規則命名並呼叫它,
pl_PL.utf8
您可以使用CREATE COLLATION
.請參閱字元集支持、排序規則支持和pg_collation目錄表。
你想用這個解決什麼問題?