Navicat连接postgresql时出现“ERROR: column datlastsysoid“ does not exist LINE 1: SELECT DISTINCT datlas“报错
作者:mmseoamin日期:2023-12-27

使用navicat连接postgresql时会出现无法打开数据库的问题(测试连接ok,但是打开数据库时会出现"ERROR: column datlastsysoid“ does not exist LINE 1: SELECT DISTINCT datlastsysoid FROM pg database")

原因:

Postgres 15 从表中删除了 datlastsysoid 字段pg_database,因此 Navicat 15.0.29 或 16.1 之前的任何版本在查找此已弃用字段时都会引发此错误

解决(navicat15版本为例):

方法一:安装16.1及以上版本

方法二:关闭navicat,打开navicat安装目录,找到libcc.dll文件(先备份一份防止后面出问题方便还原),使用十六进制编辑器打开libcc.dll文件,推荐使用在线编辑器https://hexed.it/,打开编辑器后导入libcc.dll文件,ctrl+f 搜索"SELECT DISTINCT datlastsysoid",找到后将"datlastsysoid" 替换为"dattablespace",将文件另存为到初始位置,打开navicat,测试连接打开数据库,可以正常使用。

我用第二个方法完美解决,如有遇到,可以一试