回答

收藏

十六进制文本字符串作为bytea插入PostgreSQL

技术问答 技术问答 194 人阅读 | 0 人回复 | 2023-09-13

我有一个包含多个16进制字符串的文本文件:; }- L7 v% m7 N$ C( e
013d7d16d7ad4fefb61bd95b765c8ceb007687fc64b746569616414b78c81ef1我想把这些作为 BYtea    (而不是 varchar)    存储在数据库中。换句话说,我希望数据库将01存储为单字节000001,而不是字符
( x3 c" e1 f% a3 `! D9 k# D; z0和 1。1 n. m. H( ]' I/ ~' L
我可以通过sed以任何必要的方式轻松化/转换本文件。
' i- n' h# k) d, H这是我试过的:9 S* Q4 k* J  o
create table mytable (testcol BYTEA);这有效:4 N, T- a( Y+ e% Y5 ?) P. [" d  }! [& g
insert into mytable (testcol) values (E'\x7f\x7f');但是,一旦我有一个高于\ x7f的字节,就会出现此错误:
' w" j5 Q. D7 E" |insert into mytable (testcol) values (E'\x7f\x80');ERROR:  invalid byte sequence for encoding "UTF8": 0x80有什么想法,还是我处理错误的方法?
) v) A3 Q2 s# `3 y) m) K                                                               
% Y" S3 l6 g' \0 T9 u# M    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则