You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向PostgreSQL的bytea类型列插入JSON数据?遇invalid input报错如何解决

问题原因

你直接向bytea类型的列传入普通JSON字符串,PostgreSQL不会自动将文本类型隐式转换为二进制bytea格式,因此触发输入语法错误。

解决方案

你需要对插入的JSON字符串做显式的二进制转换,常用方法如下:

方法1:使用convert_to函数(最常用)

插入时通过内置函数按指定编码将文本转为bytea,示例代码:

INSERT INTO datamine 
VALUES('DUMMY', 2100, convert_to('{"serviceId":"Y","continuedService":"E345"}', 'UTF8'));

读取数据时用对应的convert_from函数将二进制转回文本即可:

SELECT ine, essaykey, convert_from(JSONDATA, 'UTF8') AS json_content FROM datamine;

方法2:应用代码层直接传入字节流

如果是通过应用程序写入数据,直接把JSON序列化后的字节流作为参数绑定到SQL的bytea字段即可,不同语言的PostgreSQL驱动都原生支持字节类型和bytea的映射,无需额外在SQL中做转换。

注意事项
  • 插入和读取时使用的字符编码必须一致,否则会出现乱码问题,优先统一使用UTF8编码
  • 不要直接对bytea字段做字符串匹配之类的文本操作,需要先转成文本类型再处理

内容的提问来源于stack exchange,提问作者Upender Bikkumalla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:09:03