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

如何使用concat或||运算符向PostgreSQL的bytea列插入文本并解决类型报错

报错原因

PostgreSQL的concat函数和||运算符拼接字符串后返回的是text类型,而你目标列是bytea二进制类型,数据库不会默认做隐式类型转换,因此抛出类型不匹配错误。

解决方案

你只需要在拼接完成后,显式将文本转换为bytea类型即可,推荐使用convert_to函数指定编码转换,避免乱码问题:

普通插入语句写法

-- concat写法
insert into test(name) values(convert_to(concat('abac-' , 'test123'), 'UTF8'));
-- ||运算符写法
insert into test(name) values(convert_to('aa' || 'bb', 'UTF8'));

存储过程内拼接行字段写法

convert_to(concat('abac-' , row.name , 'test123'), 'UTF8')

如果不需要指定编码,也可以直接做类型强转,效果等价:

concat('abac-' , row.name , 'test123')::bytea

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:06:04