PostgreSQL ODBC:更新列时出现SQLSTATE 22021

后端开发 2026-07-09

我通过ODBC使用PowerBuilder连接到PostgreSQL 17数据库。

服务器编码设置为 'UTF8',在ODBC的“连接设置”参数中,我设置了SET CLIENT_ENCODING TO 'UTF8'。

当我尝试通过显式SQL语句更新一个char(4) 列,其值为 '4· ' 时,问题就出现了(十六进制为34 B7 20 20)。当然,用pgAdmin执行相同的更新语句是可以的。

解决方案

我已经找到了答案:

问题出在所使用的ODBC驱动类型上;测试是在使用 ANSI ODBC驱动13.02进行的;当我把ODBC连接改为 UNICODE ODBC驱动时,一切就能正常工作。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章