Bom dia, eu achei a seguinte solução:
 
create or replace function bytea_import(p_path text, p_result out bytea) 
                   language plpgsql as $$
declare
  l_oid oid;
  r record;
begin
  p_result := '';
  select lo_import(p_path) into l_oid;
  for r in ( select data 
             from pg_largeobject 
             where loid = l_oid 
             order by pageno ) loop
    p_result = p_result || r.data;
  end loop;
  perform lo_unlink(l_oid);
end;$$;
 
 
update testeimagem set imagem = (select bytea_import('/xxx/teste.jpg'));

Funcionou em uma base local (testes), mas quando vou mandar para o server, como não tem o arquivo, ele não acha. 

ERROR:  could not open server file "/xxx/teste.jpg": No such file or directory

Tem como contornar isso ?
 
 




De: [email protected]
Enviada: Quinta-feira, 6 de Agosto de 2015 16:52
Para: [email protected]
Assunto: [pgbr-geral] JPEG error #53

On 06-08-2015 16:43, Leandro Monqueiro Leme wrote:
> Infelizmente não resolveu.
> As imagens que já estavam na base eu consigo ver quando dou o comando do
> bytea_output = 'escape', em linha de execução mesmo ou colocando no
> postgresql.conf, mas os que são gravados na base 9.3, dá erro.
> Se tiro o 'latin1', na hora de gravar dá erro de sequencia de bytes
> invalida para codificação utf8 : 0xff.
>
bytea_output é para recuperação (aka SELECT); não tem nada haver com
INSERT. Há algum detalhe na hora de transformar a imagem numa cadeia de
bytes para gravar no bytea. Se você pedir para gravar as consultas, qual
é a saída do comando INSERT no log?

0xff é o caracter ÿ. A codificação do cliente é Latin1 mesmo?


--
Euler Taveira Timbira - http://www.timbira.com.br/
PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a