无法使用挪威语(Bokmål)语言环境在Postgres 9.3中创建数据库

时间:2014-09-05 23:16:23

标签: postgresql localization postgresql-9.3

我正在尝试使用此命令创建数据库:

CREATE DATABASE workgroup WITH TEMPLATE = template0 
ENCODING = 'UTF8' 
LC_COLLATE = 'Norwegian (Bokmål)_Norway.1252' 
LC_CTYPE = 'Norwegian (Bokmål)_Norway.1252';

但它失败了这个错误:

"ERROR:  invalid locale name: "Norwegian (Bokmål)_Norway.1252"

********** Error **********

ERROR: invalid locale name: "Norwegian (Bokmål)_Norway.1252" SQL state: 42809"

我在Windows 7上添加了挪威语(Bokmål)键盘,并且在标准“a”(Bokmal)和没有空格的情况下也失败了。

使用此语言环境创建数据库:

LC_COLLATE='Estonian_Estonia.1257' 
LC_CTYPE='Estonian_Estonia.1257'

工作正常。

我已经使用挪威语Bokmal语言环境安装了Windows 9.3 Postgres,但随后使用SQL命令在数据库中查询了语言环境:

show LC_COLLATE;
show LC_CTYPE;

SELECT *
FROM   pg_settings
WHERE  name ~~ 'lc%';

返回LC_COLLATE和LC_CTYPE的空数据。

挪威语(Bokmål)语言环境的LC *值应该是多少?

2 个答案:

答案 0 :(得分:0)

尝试在psql中发布\dOs+,它将显示可用语言环境的列表。

答案 1 :(得分:0)

我遇到类似的问题,尝试在Windows上运行的查询并且不能在linux上运行:

CREATE DATABASE testingDB
WITH OWNER = postgres
   ENCODING = 'UTF8'
   TABLESPACE = pg_default
   LC_COLLATE = 'Portuguese_Brazil.1252'
   LC_CTYPE = 'Portuguese_Brazil.1252'
   CONNECTION LIMIT = -1;

当我改变时

'Portuguese_Brazil.1252'

'pt_BR.UTF8'

然后我又遇到了另一个问题:

  

new collat​​ion(pt_BR.UTF8)与排序规则不兼容   模板数据库(en_US.UTF-8)

这是我自己解释的,我的系统和数据库使用另一个语言环境,所以我fixed it

您可以找到有关postgres版本排序规则here

的更多信息

我认为这应该可以解决您的问题:

CREATE DATABASE workgroup WITH TEMPLATE = template0 
ENCODING = 'UTF8' 
LC_COLLATE = 'nb_NO.UTF8' 
LC_CTYPE = 'nb_NO.UTF8';