Re: [GENERAL] how to save a bytea value into a file?

From: "Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at>
To: "fanlijing *EXTERN*" <fanlijing(at)cn(dot)fujitsu(dot)com>, <pgsql-admin(at)postgresql(dot)org>, <pgsql-general(at)postgresql(dot)org>
Subject: Re: [GENERAL] how to save a bytea value into a file?
Date: 2011-10-10 10:50:14
Message-ID: D960CB61B694CF459DCFB4B0128514C206F74246@exadv11.host.magwien.gv.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-general

fanlijing wrote:
> In Fact, I'm doing a porting project from Oracle 10g to PostgreSQL 9.0.4
>
> There is a procedure in Oracle 10g to write a blob value into a file using:
[...]
> I know PostgreSQL doesn't support procedure, so I want to porting it into a
> function use LANGUAGE plpgsql.
> So I must find some APIs supported by plpgsql to write a bytea value into a
> file (e.g. write into a file in RedHat)
>
> ★ Are there any APIs like "UTL_FILE.FOPEN... DBMS_LOB.READ...
> UTL_FILE.PUT_RAW..." of Oracle dealing with writing binary objects into a
> file in PostgreSQL? If there isn't anyone, Maybe I should think about other
> language(e.g. Perl, Java) to realize it.

There are functions to read files:
http://www.postgresql.org/docs/current/static/functions-admin.html#FUNCTIONS-ADMIN-GENFILE
The Contrib-Module "adminpack" contains a function "pg_file_write"
that can be used to write files.

But you don't need those for what you want to do.

A simple
COPY (SELECT byteacol WROM mytab WHERE ...) TO 'filename' (FORMAT binary)
should do the trick.

For all that you need superuser privileges.

Yours,
Laurenz Albe

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message jesper 2011-10-10 14:17:05 pg_lesslog
Previous Message fanlijing 2011-10-10 08:23:04 Re: [GENERAL] how to save a bytea value into a file?

Browse pgsql-general by date

  From Date Subject
Next Message Ondrej Ivanič 2011-10-10 11:14:14 Re: plpgsql syntax error
Previous Message Harshitha S 2011-10-10 10:41:04 Re: could not create file "base/16384/11500": File exists