碰到这种情况下,必须在客户端将二进制转化为一定规则的字符序列,然后插入语句时,来个显示转换
cast('字符序列' as bytea).
二进制转化为字符序列的规则:
分析每个字节,当其ASCII值在0到31,127到255,或为39、92,请将这字节转化为3位的八进制字符串,前面加上2个反斜杠,如chr(39)表示为
//047. 其他ascii值为可显示字符,不变,当然你也可全部转化为八进制,但这样整个字符串太长,浪费空间。
如二进制序列 chr(0)+'a'+'b'+chr(233)+chr(25)+'c'转化为字符序列为:
如果二进制数据太大,可分次上传,用||连接符连接起来,如:
insert into table1 (id,aa) values (1,cast('序列1' as bytea))
update table1 set aa=aa||cast('序列2' as bytea) where id=1
...
原文链接:https://www.f2er.com/postgresql/197190.html