微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgresqlpgAdmin 4-如何在系统设置中将小数点分隔符从点更改为逗号

如何解决PostgresqlpgAdmin 4-如何在系统设置中将小数点分隔符从点更改为逗号

在波兰,我们使用逗号代替小数点分隔符。我的整个数据库都使用逗号,当我想将数据导入postgrsql时出现此错误

错误:数字类型“ 0,000”的无效输入语法 内容copY表格1,第2行,栏销售量:“ 0,000” sql状态:22P02

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

解决方法

您必须更改配置参数lc_numeric。可以通过在数据库启动时或在sql中即时配置参数文件来实现(有关与参数交互的其他方式,请咨询相应的docs' section)。

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

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上进行了测试。文档SETLocale config中的更多详细信息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。