问题记录:Navicat连接PostgreSql时出现 "ERROR: column "datlastsysoid" does not exist LINE 1: SELECT DISTINCT datlastsysoid FROM pg_database"
1、连接问题
Navicat连接PostgreSql时出现"ERROR: column “datlastsysoid” does not exist LINE 1: SELECT DISTINCT datlastsysoid FROM pg_database"报错,如下图所示:
2、问题分析
Postgres 15 从表中删除了 datlastsysoid 字段pg_database因此 Navicat 15.0.29 或 16.1 之前的任何版本在查找此已弃用字段时都会引发此错误。
3、解决方案
方案一:降级postgres
- 可自行百度换一个低版本的pg
方案二:升级navicat(升级到最新的 17 及更高版本)
- Navicat Premium 17安装教程:https://blog.youkuaiyun.com/fy512/article/details/140636518
方案三:修改dll文件
①打开 Navicat 安装目录,找到libcc.dll
②备份libcc.dll文件,将其复制并粘贴为“libcc.dll.bak”或任何其他名称
③在任何十六进制编辑器(HxDHexEditor2.3.0.0)中打开此文件,如果需要,可以使用在线工具,例如 https://hexed.it/。
④在文件中还是能搜到“SELECT DISTINCT datlastsysoid”,将其替换为“SELECT DISTINCT dattablespace” ,保存,重启就能连上了