Postgresql(pgAdmin 4)-如何将系统设置中的十进制分隔符从点更改为逗号

Postgresql(pgAdmin 4)-如何将系统设置中的十进制分隔符从点更改为逗号,postgresql,pgadmin-4,Postgresql,Pgadmin 4,在波兰,我们用逗号代替点作为十进制分隔符。我的整个数据库都使用逗号,当我想将数据导入postgrsql时,出现以下错误: 错误:数字类型“0000”的输入语法无效 上下文:复制第1页第2行第栏销售数量:“0000” SQL状态:22P02 如何更改Postgresql设置,使其接受逗号而不是点作为十进制分隔符?您必须更改配置参数lc\u numeric。这可以通过db启动时的配置参数文件或sql中的动态配置参数文件实现(有关与参数交互的其他方式,请咨询相应的数据库) 要更改整个集群的设置,请使用

在波兰,我们用逗号代替点作为十进制分隔符。我的整个数据库都使用逗号,当我想将数据导入postgrsql时,出现以下错误:

错误:数字类型“0000”的输入语法无效 上下文:复制第1页第2行第栏销售数量:“0000” SQL状态:22P02


如何更改Postgresql设置,使其接受逗号而不是点作为十进制分隔符?

您必须更改配置参数
lc\u numeric
。这可以通过db启动时的配置参数文件或sql中的动态配置参数文件实现(有关与参数交互的其他方式,请咨询相应的数据库)

要更改整个集群的设置,请使用:

ALTER SYSTEM lc_numeric TO 'pl_PL.UTF-8'; -- Check the original setting first !!!
对于一次性工作来说,这可能不是一个好主意(而且你可能没有特权)

以下步骤说明如何在当前sql事务的英美和波兰数字格式约定之间切换:

-- show the current setting. let's say it is 'en_US.UTF-8'. Remember/store for later.
show lc_numeric;

-- American style.
select to_char(123456789.8765, '999G999G999D99');

-- Set to Polish convention (group separator ' ', decimal: ',') 
set lc_numeric to 'pl_PL.UTF-8';

-- Polish style
select to_char(123456789.8765, '999G999G999D99');

-- Restore original value
set lc_numeric to 'en_US.UTF-8';
在Postgresql 12上测试。有关更多详细信息,请参阅文档、章节和