由于货币格式不同,无法将备份从 postgres 导入到具有相同 postgres 版本的不同服务器

问题描述

我将我的数据库从在 Debian 7.11 上运行的 Postgres 9.1.23 移动到另一台在 Debian 10 上运行 Postgres 9.1.24 的服务器,我无法导入一个使用货币数据类型的数据库,因为我收到输入语法错误

COPY failed for table "x": ERROR:  invalid input syntax for type money: "zł4.400,00"

我在 Debian 7.11 上的两台 Postgres 服务器上使用相同的语言环境:

postgres=# show lc_collate;
 lc_collate
-------------
 pl_PL.UTF-8
(1 row)

postgres=# show lc_monetary;
 lc_monetary
-------------
 pl_PL.UTF-8
(1 row)

在 Debian 10 上:

postgres=# show lc_collate;
 lc_collate
-------------
 pl_PL.UTF-8
(1 wiersz)

postgres=# show lc_monetary;
 lc_monetary
-------------
 pl_PL.UTF-8
(1 wiersz)

然而,当我尝试在两台服务器上运行 select '12345'::money; 时,我得到了不同的结果,在 Debian 7.11 上:

postgres=# select '12345'::money;
    money
-------------
 zł12.345,00
(1 row)

在 Debian 10 上:

postgres=# select '12345'::money;
    money
-------------
 zł12 345,00
(1 wiersz)

(在 Debian 10 中 2 和 3 之间有一个狭窄的无刹车空格字符 - 0x202F UTF-16)

我需要什么才能成功导入而不会出错?感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)