我有一个文本文件,里面有几个十六进制字符串:
013d7d16d7ad4fefb61bd95b765c8ceb
007687fc64b746569616414b78c81ef1
我想把它们作为bytea而不是varchar存储在数据库中.也就是说,我希望数据库将01存储为单字节00000001,而不是字符"0"1'.
我可以通过sed轻松运行这个文件,以任何方式格式化/转义它.
这就是我try 过的:
create table mytable (testcol BYTEA);
这是有效的:
insert into mytable (testcol) values (E'\x7f\x7f');
但是,一旦有一个字节超过\x7f,就会出现以下错误:
insert into mytable (testcol) values (E'\x7f\x80');
ERROR: invalid byte sequence for encoding "UTF8": 0x80
有什么 idea 吗,还是我处理问题的方式不对?