给出一个简单的表:

PGresult   *res  = PQexec(usersconn, "CREATE TABLE userfiles (username
 varchar[100] PRIMARY KEY, mydata bytea);");

我试图添加一个数据:
    PGresult   *res = PQexec(usersconn, "INSERT into userfiles VALUES (
'peter' , '\\\\x1A' );" );

或者这个:
PGresult   *res = PQexec(usersconn, "INSERT into userfiles VALUES ( 'peter' , '\x1A' );" );

我得到一条关于数组值必须以。。。
在这个记录中插入一个简单的十六进制常量有什么不对的?

最佳答案

十六进制值必须使用转义语法:

INSERT into userfiles VALUES ( 'peter' , e'\\x1A' );

http://www.postgresql.org/docs/9.3/static/datatype-binary.html

关于postgresql - Postgres 9.3给出错误:十六进制bytea值的数组值必须以…开头,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30432143/

10-09 05:22