Re: bytea - Mailing list pgsql-sql

From Christoph Haller
Subject Re: bytea
Date
Msg-id 3E40E45A.6D20C6EE@rodos.fzk.de
Whole thread Raw
In response to bytea  ("Adrian Chong" <achong@cecid.hku.hk>)
List pgsql-sql
>
> I have a table containing a field of type bytea:
>
> CREATE TABLE a_table (
>     a_field bytea
> );
>
> How can I import a file in a SQL script? What function I can use?
>
The documentation says as in PostgreSQL 7.2.1 (I doubt this changed
significantly since)

Octets of certain values must be escaped (but all octet values may be
escaped) when used as part of a string literal in an SQL
statement. In general, to escape an octet, it is converted into the
three-digit octal number equivalent of its decimal octet value, and
preceded by two backslashes.

In general it goes like this
INSERT INTO a_table ( a_field ) VALUES ( '\\000\\001\\002\\003' ) ;
to load the first four ASCII characters.
You did not mention how your file looks like.
There is also a C function available called PQescapeBytea
which does all the required escaping to store memory areas in bytea
columns.
Refer to Command Execution Functions within libpq - C Library for
details.

Regards, Christoph




pgsql-sql by date:

Previous
From: "Adrian Chong"
Date:
Subject: bytea
Next
From: "Adrian Chong"
Date:
Subject: Re: bytea