Ok! Guilherme, muito obrigado! 

Mais o problema é integrar o DBLink dentro do meu select, onde ele faz 
referência a tabela de outro BD seria intercalado o select do DBLink. Fazer
o DBLink sozinho eu sei, como montar o select completo é que não. Tipo:


    select a017.a017_docu, a017.a017_tipo, ** DBLINK a014_desc **, 
a017.a017_dtem,

    a017.a017_tpfo, a017.a017_forn, ** DBLINK a001_nome **, a017.a017_hist,

    a017.a017_dtvn, a017.a017_vavn, a017.a017_dtpg, a017.a017_vapg,

    a017.a017_atra, a017.a017_cdbx, a017.a017_banc, ** DBLINK a016_desc **,

    a017.a017_cheq, a017.a017_his1, a017.a017_digi, a017.a017_plan, **DBLINK 
a011_desc **, 

    a017.a017_dupl, a017.a017_docu as ca017_docu, a017.a017_tipo as ca017_tipo

 

    from a001017_tbl a017

 

    left outer join a001014_tbl on (a017.a017_tipo = a001014_tbl.a014_chv)

    left outer join a001001_tbl on (a017.a017_tpfo = a001001_tbl.a001_tipo) and 
(a017.a017_forn = a001001_tbl.a001_chv)

    left outer join a001016_tbl on (a017.a017_banc = a001016_tbl.a016_chv)

    left outer join a001011_tbl on (a017.a017_plan = a001011_tbl.a011_redu)




Adilson Nunes


  ----- Original Message ----- 
  From: Guilherme Vianna de Aguiar 
  To: 'Comunidade PostgreSQL Brasileira' 
  Sent: Wednesday, September 24, 2008 9:53 AM
  Subject: [pgbr-geral] RES: Ajuda com SQL e BD


  Para usar dblink, você precisa ter instaladas as funções. 

   

  A sintaxe eh 

  select * 

  from ('_CONN_BANCO_REMOTO_',  '_SELECT_BANCO_REMOTO')

  as t1 (_COL_BANCO_REMOTO_ tipo);

   

  Um exemplo

   

  select * 

  from dblink('dbname=teste hostaddr=10.0.0.0 user=postgres password=postgres 
port=5432', 

              'select data

               from dw_data 

               where substring(data::varchar, 1, 7) = ''2008-08''  ')

      as t1(data varchar)

   

  [],

  Guilherme Vianna

   

   

  De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome de tetraetila®
  Enviada em: terça-feira, 23 de setembro de 2008 23:34
  Para: [email protected]
  Assunto: [pgbr-geral] Ajuda com SQL e BD

   

  Estou precisando de uma ajuda, o Firebird não me serve. Preciso aprender a 
fazer o DBLink no Postgres

  para poder utilizar mais de um BD na minha aplicação. Qualquer ajuda será bem 
vinda. 

  Veja a situação abaixo:

   

  
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

   

  Olá 


  Estou migrando um sistema para Firebird e me deparei com um problema que 
gostaria de debater com vocês. 
  Tenho um BD que possui as tabelas com os dados de clientes, fornecedores, 
transportadores e vendedores, além
  das tabelas de tipos de documentos, plano de contas, bancos, etc. Seria a 
base principal.

  Quando estou na Empresa01 faço um "select" que me retorna o tipo de documento 
na tabela A017 e a descrição do 
  documento que está na tabela A014,  o tipo de fornecedor na tabela A017 e o 
nome do fornecedor  na tabela A001
  e por aí vai, vendedores, transportadores, plano de contas, etc. A tabela 
A017 é de movimentação de contas a pagar, porém no sistema
  eu trabalho com as Empresas02, 03, "n"... As tabelas padrões são as mesmas, 
eu mudo apenas os arquivos de movimentação
  para outro BD. O problema é que eu não sei como fazer isto ou se é possível 
fazê-lo no Firebird.  Ou seja, dar um "select" que 
  busque dados em dois BD's distintos. Quando o banco de dados é o mesmo o 
"select" abaixo  funciona perfeitamente, 
  porém quando mudo para a Empresa02 não funciona, pois não sei buscar as 
informações das tabelas A014 - 
  A001 - A016 - A011 que estão no BD001. Isto que necessito seria em Postgres, 
um "DBLink", já andei pesquisando.

  Se alguém tiver uma sugestão que possa me ajudar mesmo que seja fazer o 
"DBLink" no Postgress, agradeço desde já. 
  Pois esta está sendo a "pedra no meu caminho" para terminar o sistema, 
resolvendo isto vários problemas serão

  solucionados de uma vez só. Estamos saindo do Clipper e DBF.

   

  Muito obrigado!

  Vejam o select que funciona quando o BD é único:

  select a017.a017_docu, a017.a017_tipo, A014_DESC, a017.a017_dtem,
  a017.a017_tpfo, a017.a017_forn, A001_NOME, a017.a017_hist,
  a017.a017_dtvn, a017.a017_vavn, a017.a017_dtpg, a017.a017_vapg,
  a017.a017_atra, a017.a017_cdbx, a017.a017_banc, A016_DESC,
  a017.a017_cheq, a017.a017_his1, a017.a017_digi, a017.a017_plan, A011_DESC,
  a017.a017_dupl, a017.a017_docu as ca017_docu, a017.a017_tipo as ca017_tipo

  from a001017_tbl a017

     left outer join a001014_tbl on (a017.a017_tipo = a001014_tbl.a014_chv)
     left outer join a001001_tbl on (a017.a017_tpfo = a001001_tbl.a001_tipo) 
and  (a017.a017_forn = a001001_tbl.a001_chv)
     left outer join a001016_tbl on (a017.a017_banc = a001016_tbl.a016_chv)
     left outer join a001011_tbl on (a017.a017_plan = a001011_tbl.a011_redu)


  O que retornaria mais ou menos conforme abaixo:


  
---------------------------------------------------------------------------------------------------------------------
  A017_DOCU | A017_TIPO | A014_DESC | A017_DTEM | A017_TPFO | A017_FORN | 
A001_NOME           |    
  
---------------------------------------------------------------------------------------------------------------------
  52.521-U        | 003              | Duplicatas      |16/09/2008      | 001   
            | 000565          | Santa Maria S/A.        |
  
----------------------------------------------------------------------------------------------------------------------
  36.878-A        | 005              | Cheques         |16/08/2008     | 001    
           | 000098          | Papelão & Cia.            |
  
----------------------------------------------------------------------------------------------------------------------
  14.315-B        | 001              | Pagamentos     |16/09/2007    | 001      
         | 000001          | Pagamentos diversos    |
  
----------------------------------------------------------------------------------------------------------------------

   

  Adilson Nunes

   

  No virus found in this incoming message.
  Checked by AVG - http://www.avg.com
  Version: 8.0.169 / Virus Database: 270.7.1/1688 - Release Date: 24/9/2008 
06:29



------------------------------------------------------------------------------


  _______________________________________________
  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