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

这个报错的原因是版本不兼容 :使用的Navicat版本太旧,但连接的PostgreSQL版本太新。PostgreSQL从版本15 开始,已经从系统表 pg_database 中彻底移除了 datlastsysoid 这个字段。而你正在使用的旧版Navicat(通常是15.0.29之前或16.1之前的版本)在连接时,依然会尝试查询这个已被删除的字段,因此导致报错。

最简单的解决方法就是修改Navicat 安装目录的libcc.dll文件。

1、找到Navicat 安装目录的libcc.dll文件,然后备份。

2、使用十六进制编辑器或者在线工具,例如 https://hexed.it 打开此文件。

3、在文件中搜索"SELECT DISTINCT datlastsysoid",并将其修改为"SELECT DISTINCT dattablespace"。

最后连接成功。

相关推荐
罗超驿3 小时前
18.事务的隔离性和隔离级别:MySQL面试高频考点全解析
数据库·mysql·面试
jran-3 小时前
Redis 命令
数据库·redis·缓存
小江的记录本4 小时前
【Java基础】Java 8-21新特性:JDK21 LTS:虚拟线程、模式匹配switch、结构化并发、序列集合(附《思维导图》+《面试高频考点清单》)
java·数据库·python·mysql·spring·面试·maven
June`4 小时前
多线程redis下如何解决aof重写和rdb持久化的数据一致性问题
数据库·redis·缓存
二宝哥4 小时前
离线安装maven
java·数据库·maven
SZLSDH5 小时前
场景适配论 | 数字孪生IOC建设中渲染技术与智能体能力的协同逻辑
前端·数据库·ai·数字孪生·数据可视化·智能体
这个DBA有点耶5 小时前
SQL改写实战:子查询、CTE、窗口函数性能对比
数据库·mysql·性能优化
@我漫长的孤独流浪5 小时前
数据库完整性约束全解析:从理论到实践
数据库
l1t5 小时前
DeepSeek总结的 DuckDB 1.5.3:并非普通的补丁版本
数据库·duckdb