前言
这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。作者:神的孩子都在歌唱
我在使用使用Navicat Premium 15连接PostgreSQL 16的数据库时,会报错datlastsysoid does not exist,如下:
网上上搜了以下,发现是版本不匹配问题, Postgres 15 从pg_database表中删除了 datlastsysoid 字段引发此错误。
解决方法:
- 升级navicat
- 降级pgsql
- 修改navicat的 libcc.dll文件
我选择的方法是修改dll,懒得升级了 。 方案就是 使用16进制编辑器将libcc.dll文件中的"SELECT DISTINCT datlastsysoid"更改为"SELECT DISTINCT dattablespace"
- 打开
Navicat
安装目录,找到libcc.dll文件
- 然后使用vscode打开,由于这个文件需要16进制编译器打开,所以下载一个Hex Editor插件
这样子就能打开编辑dll文件了
注意这里得先取消navicate的使用,要不然打不开
- 全局查找SELECT DISTINCT datlastsysoid
- 将“SELECT DISTINCT datlastsysoid”,替换为“SELECT DISTINCT dattablespace”,替换完成按
ctrl+S
保存
- 重启navicat,就可以正常访问了
参考文档:
https://www.cnblogs.com/skyvip/p/18141140
https://zhuanlan.zhihu.com/p/659630835
https://blog.****.net/asp_netMiss/article/details/137874461
作者:神的孩子都在歌唱
本人博客:https://blog.****.net/weixin_46654114
转载说明:务必注明来源,附带本人博客连接。