• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    使用navicat新旧版本连接PostgreSQL高版本报错问题的图文解决办法

    发布者: Error | 发布时间: 2025-6-18 09:19| 查看数: 59| 评论数: 0|帖子模式

    一、问题现象:

    使用Navicat来连接PostgreSQL数据库,发现连接不上,报错信息如下:

    错误: 字段 d.datlastsysoid 不存在
    LINE 1: …, ‘pg_database’) AS comment, t.spcname, d.datacl, d.datlasts…
    ^

    错误: 字段 c.relhasoids 不存在
    LINE 1: SELECT c.oid, obj_description(c.oid), c.relhasoids AS hasoi…
    ^

    错误: 字段 c.consrc 不存在
    LINE 1: …y, c.confupdtype, c.confdeltype, c.confmatchtype, c.consrc, …
    ^
    HINT: 也许您想要引用列"c.conkey"或者列"c.conbin"。

    二、出现原因

    pgsql 15版本以后,有些系统表的列名改了,pg_database表里的这一个列被删除了


    三、解决方法:


    1、升级Navicat版本:

    将navicat升级到16.2以上版本;

    2、使用低版本的postgreSQL:

    降级pgsql、老版本PostgreSQL仍然可用。

    3、修改Navicat的dll二进制文件:

    修改内容以datlastsysoid 为例,其他几个报错修改方法相同

    navicat版本15

    找到navicat安装目录,有一个libcc.dll文件。

    备份这个文件;进入网站 https://hexed.it/ 打开本地的libcc.dll 文件;右侧点击搜索,关键词 SELECT DISTINCT datlastsysoid ;找到之后,把 datlastsysoid 这几个字,改成 dattablespace ;然后把文件下载回来,放回原处。

    最后,重启Navicat,可以发现无论老和新版本的pgsql都可以正常访问了。


    navicat版本11

    找到navicat安装目录,有一个navicat.exe文件。

    备份这个文件;进入网站 https://hexed.it/ 打开本地的navicat.exe 文件;右侧点击搜索,关键词 SELECT DISTINCT datlastsysoid ;找到之后,把 datlastsysoid 这几个字,改成 dattablespace ;然后把文件下载回来,放回原处。

    最后,重启Navicat,可以发现无论老和新版本的pgsql都可以正常访问了。

    以上就是使用navicat新旧版本连接PostgreSQL高版本报错问题的图文解决办法的详细内容,更多关于navicat新旧版本连接PostgreSQL高版本的资料请关注脚本之家其它相关文章!

    来源:https://www.jb51.net/database/332402c58.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表