Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Conexões em duas base de dados

Boa noite!

Tenho um base de dados no PostGresql onde tem a tabela cad_processo, onde tenho o número do processo, e em outra base no Firebird tenho o valor pago do processo na tabela cadastro. Gostaria de saber como fazer a junção destas duas tabelas em bancos diferentes. Todas as vezes mostra erro pois não fica disponível as duas conexões.

Labels (1)
1 Solution

Accepted Solutions
Not applicable
Author

Olá Marcio,

Você pode utilizar o Inner join , ou ainda utilizar where exists (PK_COMPOSTA) na tabela CADDESP.

Att,

Maicon Mello

View solution in original post

5 Replies
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Bom dia.

A conexao vem antes do SELECT

Exemplo:

OLEDB CONNECT32 .....PostGree......

LOAD

         A,

         *;

SQL SELECT* FROM Tabela1;

left join

OLEDB CONNECT32 .....FireBird......

LOAD

         A,

         *;

SQL SELECT* FROM Tabela2;

furtado@farolbi.com.br
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

um connect faz automaticamente a desconeccao do outro.  Entao, antes de cada acesso ao banco que voce quer ler, tem que fazer um connect. Depois do connect podes ler quantas tabelas quiser dentro do mesmo connect ate um outro connect ou um disconnect

furtado@farolbi.com.br
Not applicable
Author

Bom dia! Alessandro realizarei os testes, mas desde já obrigado pela presteza.

Not applicable
Author

Bom dia!

Na tabela integra tem 205 registros e na caddesp 313373 registros. Gostaria que retornasse apenas os 205 registros da tabela integra com seus respectivos valores na tabela caddesp. Onde esta o erro no Left Join?

Integra:

LOAD

  ("num_processo" & '_' & Year("dat_entrada")) as [Pk Composta],

  "seq_integra" as [Código do Integra],

    "dsc_tipo",

    "dat_documento",

    "num_processo",

    "num_documento",

    "dat_entrada",

    "dsc_assunto",

    "dsc_detalhamento",

    "dsc_situacao",

    "dat_atualizacao";

SQL SELECT "seq_integra",

    "dsc_tipo",

    "dat_documento",

    "num_processo" ,

    "num_documento",

    "dat_entrada",

    "dsc_assunto",

    "dsc_detalhamento",

    "dsc_situacao",

    "dat_atualizacao"

FROM ses."sc_sjs"."sjs_integra_processo";

Left Join (Integra)

ODBC CONNECT32 TO Firebird (XUserId is eDIZeJFLTCREUABa, XPassword is cXJbTWFMTDdKGZNNFLeIL);

CADDESP:

LOAD

  ("PROCOD" & '_' & "PROANO") as [Pk Composta],

  PROANO,

    PROCOD,

    VALORORI;

SQL SELECT

  PROANO,

  PROCOD,

    VALORORI

FROM CADASTRO;

Not applicable
Author

Olá Marcio,

Você pode utilizar o Inner join , ou ainda utilizar where exists (PK_COMPOSTA) na tabela CADDESP.

Att,

Maicon Mello