在 Windows 11 系统下,Navicat 15 连接数据库报错 “ERROR: column "datlastsysoid" does not exist”

在 Windows 11 系统下,Navicat 15 连接数据库报错 “ERROR: column "datlastsysoid" does not exist”,
是因为 PostgreSQL 15 及以上版本从pg_database表中删除了datlastsysoid字段,而 Navicat 15.0.29 及之前版本在查找此已弃用字段时会引发该错误1。以下是解决办法10:

  • 升级 Navicat 版本:可以升级 Navicat 至 15.0.29 或 16.1 及更高版本,以获得对 PostgreSQL 15 的更好支持。若不想升级到最新版,也可尝试升级到推荐版本。
  • 降级 PostgreSQL 版本:如果无法更新 Navicat,可以考虑将 PostgreSQL 降至较低版本,如 PostgreSQL 14 或更早版本,这些版本仍然保留了datlastsysoid字段,不会触发该错误。
  • 修改 libcc.dll 文件:
    1. 定位libcc.dll文件,找到 Navicat 的安装目录,通常在C:\Program Files\PremiumSoft\Navicat Premium 15\下,找到libcc.dll文件。
    2. 备份原始文件,将原版libcc.dll文件复制一份作为备份,比如复制并粘贴为 “libcc - backup.dll”。
    3. 编辑libcc.dll文件,使用十六进制编辑器打开libcc.dll文件,推荐使用HexEd.it。在文件中搜索 “SELECT DISTINCT datlastsysoid”,将其替换为 “SELECT DISTINCT dattablespace”。
    4. 保存修改后的文件,将文件另存为到初始位置。如果遇到安全问题,可先另存为 “.txt” 文件,再将其重命名为 “libcc.dll”。完成上述步骤后重新启动 Navicat 尝试连接 PostgreSQL 服务器,应能正常工作。
posted @ 2025-04-19 16:47  zwx901323  阅读(1044)  评论(0)    收藏  举报