Minha sugestão: crie *views *relativas a cada banco/tabela. Assim fica
fácil executar as junções.

2008/9/24 tetraetila(R) <[EMAIL PROTECTED]>

>  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 <[EMAIL PROTECTED]>
> *To:* 'Comunidade PostgreSQL Brasileira'<[email protected]>
> *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(R)
> *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
>
>


-- 
William Leite Araújo
Analista de Banco de Dados - QualiConsult
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a