Olá,
Pela view realmente não vai funcionar.
Vc terá que fazer uma função
create or replace function consulta_estoque(in pwhere text, out "Código 
Produto" integer, out "Estoque Atual" numeric) return setof record as $$declare 
r record; comando text;begin comando := 'SELECT produto, estoque FROM estoque ' 
|| ' where' || pwhere; for r in SELECT produto, estoque FROM 
dblink('dbname=sao_paulo', comando)  AS tabela( produto INTEGER, estoque 
NUMERIC )   loop   "Código Produto" := r.produto;    "Estoque Atual" := 
r.estoque;   return next;  end loop; return;end;$$ language plpgsql;

Vlw.

Claudio Oliveira 
http://www.msisolucoes.com.br

Date: Wed, 16 Nov 2011 15:06:30 -0200
From: vinicius.santos.li...@gmail.com
To: pgbr-geral@listas.postgresql.org.br
Subject: [pgbr-geral] View com DB-Link

Boa tarde pessoal,
 
Estou com uma dúvida com uma funcionalidade que estou precisando muito.
 
Tenho uma view +/- assim:
 
CREATE OR REPLACE VIEW consultar_sao_paulo AS
  SELECT produto, estoque FROM dblink('dbname=sao_paulo', 'SELECT produto, 
estoque FROM estoque' )
    AS tabela( produto INTEGER, estoque NUMERIC ).
 
Até aí tudo bem, então chamo esta view assim: SELECT * FROM consultar_sao_paulo 
WHERE produto = 31587.
 
O grande problema é que a cláuse WHERE não é passada para o DB-LINK, então 
primeiro ele faz a seleção completa da tabela estoque no banco sao_paulo, e 
depois o filtro.
 
Não faço a menor idéia de como contornar isto, e isto é funcionalidade crucial 
para nossa aplicação hoje.
 
Se realmente não há ainda uma maneira de resolver, será que seria difícil um 
patch para isto ? Alguém conhece as entranhas do fonte do DB-LINK, e sabe me 
dizer se vale a pena correr atrás de um patch ?

_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral            
                          
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Reply via email to