Comparar tabelas em bases diferentes - [RESOLVIDO]

2 respostas
N

Boa tarde, galera já olhei no java básico, avançado e nesse aqui também…
ps: não sei quase nada de Java e o bicho é tenso.

Estou tentando realizar uma consulta no Oracle através do netbeans.

tenho aqui 2 bases - Banco_A e Banco_B
gostaria de comparar Banco_A.tabela1 com Banco_B.tabela1
e retornar os resultados que forem diferentes.
Mas quem diz de eu achar como faz isso.

se alguém tiver alguma ideia, desde já sou grato.

t+

2 Respostas

N

A principio como não descobri como fazer o que queria..

criei um novo banco com 2 tabelinhas que irão receber minhas 2 tabelas e nesse novo Banco faço só a consulta porque se fizer os inserts e updates tava demorando e deixando tudo lerdo.

ahh foi o que consegui fazer, sugestões são bem vindas.

public ResultSet Comparacao(){
        Connection pacs = conexaoOracle();
        Conexao_SQLServer sql = new Conexao_SQLServer();
        Conexao_ORCL pio = new Conexao_ORCL();
        
        PreparedStatement stm,stm2,stm3,stm4;
        
        ResultSet rs = null;
        ResultSet rs2 = null;
        try {
            
            stm = pacs.prepareStatement("SELECT");
            
            //stm.setString(1, comp);
           
            rs = stm.executeQuery();
            
            
            try{
            stm2 = pio.conexaoORCL().prepareStatement("SELECT");
            rs2 = stm2.executeQuery();
                
            
            while (rs.next() && rs2.next()){
                  
            try{
                
                stm3 = sql.Conexao_SQLServer().prepareStatement("INSERT/UPDATE");       
                            
                        stm3.setString(1, rs.getString("AN"));
                        stm3.setString(2, rs.getString("NOME"));
                        stm3.setString(3, rs.getString("DATA"));
                        stm4.setString(1, rs2.getString("ACN"));
                        
                       stm3.execute();
                       stm3.close();
                       stm4.execute();
                       stm4.close();

                }catch (Exception erro){//Resultado final
                                JOptionPane.showMessageDialog(null,
          "Ocorreu um erro de INSERCAO.!"+"\n" +  erro.getMessage(),"Conexão",3);
            erro.printStackTrace();
                    }
                                         }
            
            }catch(SQLException e){//RS2
                System.out.println("Erro SQL RS2: " + e);
            }
               return rs2; 
           
            } catch (SQLException ex) {//RS
                System.out.println("Erro SQL RS: " + ex);
            }
            return rs;
B

Procure por dblink. Já consegui fazer o que você queria em banco separados também. A única maneira que consegui, foi dessa maneira. (PostgreSQL)

Conectar com outro banco

select dblink_connect('string de conexão aqui');

Consulta:

select dblink_exec('select codigo from funcionario') as apelido_tabela (codigo integer);

Agora pasta fazer a união do dados do banco 2 com a tabela do banco que você estiver executando a consulta.
Faz tempo que utilizei. Só precisas verificar a syntax, mas acredito que seja isso.

Criado 2 de fevereiro de 2015
Ultima resposta 10 de fev. de 2015
Respostas 2
Participantes 2