我有一个文本文件,其中包含几个十六进制字符串:
013d7d16d7ad4fefb61bd95b765c8ceb
007687fc64b746569616414b78c81ef1
Run Code Online (Sandbox Code Playgroud)
我想将它们作为bytea存储在数据库中,而不是varchar.也就是说,我希望数据库将01存储为单字节00000001,而不是字符'0'和'1'.
我可以通过sed轻松运行这个文件,以任何方式格式化/转义它.
这是我尝试过的:
create table mytable (testcol BYTEA);
Run Code Online (Sandbox Code Playgroud)
这有效:
insert into mytable (testcol) values (E'\x7f\x7f');
Run Code Online (Sandbox Code Playgroud)
但是,只要我的字节超过\ x7f,我就会收到此错误:
insert into mytable (testcol) values (E'\x7f\x80');
ERROR: invalid byte sequence for encoding "UTF8": 0x80
Run Code Online (Sandbox Code Playgroud)
任何想法,还是我接近错误?