Navicat连接postgresql时出现‘datlastsysoid does not exist‘报错的问题

  1 column “datlastsysoid“ does not exist
  2 Line1:SELECT DISTINCT datalastsysoid FROM pg_database

问题分析
Postgres 15 从pg_database表中删除了 datlastsysoid 字段引发此错误。
决绝方案

  1. 升级navicat
  2. 降级pgsql
  3. 修改dll

实操演示

  1. 打开 Navicat 安装目录,找到libcc.dll文件
  2. 备份libcc.dll文件,将其复制并粘贴为“libcc.dll.bak”或任何其他名称

3 在任何十六进制编辑器中打开此文件,如果需要,您可以使用在线工具,例如 https://hexed.it。这里使用vscode,vscode有个插件Hex Editor
安装插件Hex Editor

4. 使用vscode右键打开Navicat安装目录,找到libcc.dll,点击仍然打开,然后选择十六进制编辑器打开,按住ctrl+F搜索在文件中搜索“SELECT DISTINCT datlastsysoid”

  1. 将“SELECT DISTINCT datlastsysoid”,替换为“SELECT DISTINCT dattablespace”,替换完成按ctrl+S保存

6.重启navicat,可以发现,无论老和新版本的pgsql,都可以正常访问了

posted @ 2024-04-17 16:41  Excel2016  阅读(187)  评论(0编辑  收藏  举报