Buenos dias:

2016-04-17 6:48 GMT+02:00 José Fermín Francisco Ferreras
<josefermi...@hotmail.com>:
> Como puedo insertar una foto en una tabla en postgres mediante comando:
> CREATE TABLE esquema.documento
> (
>   numero_documento serial NOT NULL,
>   fecha_documento date NOT NULL,
>   nombre_cliente integer NOT NULL,
>   foto_documento bytea NOT NULL,
> );
> Me pregunto si se insertara de esta manera:
> insert into esquema.documento(fecha_documento, nombre_cliente,foto) values
> ('2016-04-17','Juan Perez','c:\foto.jpg');

Desde luego, asi no. Tienes que leer en el cliente la foto de alguna
manera y ponersela en alguna sintaxis que se entienda, hay varias en
el manual. El como depende sobre todo de que aplicacion estes usando
para manejarla (p.e., si estas usando psql tienes pocas alternativas
aparte de ponerla como una constante ).

P.e. Un jpg cualquiera:

$ od -t x1 -tc  redacted_filename.JPG | head
0000000  ff  d8  ff  e0  00  10  4a  46  49  46  00  01  01  01  02  58
        377 330 377 340  \0 020   J   F   I   F  \0 001 001 001 002   X

puede describirse como una constante bytea
E'\\Xffd8ffe000104a464946000101010258...'

Dependiendo de tu entorno hay muchas formas de construirla, p.e.

$ head -c16 Documents/Boda\ y\ abuelos.JPG | perl -e "\$q=qq('); "'
undef $/; print "E$q\\\\x",unpack("H*",scalar(<>)),"$q\n"'
E'\\xffd8ffe000104a464946000101010258'

( Parece mas de lo que es por lo dificil que es meter un script de
perl que use ' y " y \ en la linea de comando del bash, probablemente
en un archivo te quede solo:

#!/usr/bin/perl
undef $/; # Slurp whole stdin in one go.
print "E'\\\\x",unpack("H*",scalar(<>)),"'\n"'

> Y como se puede visualizar el registro con su imagen??

Pues como al reves, consigues el byte a y lo pasas a binario y se lo
das a la rutina / programa.

> Alguien me puede ayudar??

Seguro, pero deberias empezar por decir mucho mas de lo que pones,
como que lenguage/sistema operativo/entorno estas usando ( parece
windows por el C:\, con lo que yo no mucho, pero hay mucho experto de
windows suelto por aqui ) ( porque p.e. lo que te dije fallara casi
seguro en windows por el tema del binmode aunque tuvieras perl y head
).

Un saludo.
   Francisco Olarte.

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a