Parece que você pode estar limitado a truncar e preencher apenas com SELECT.
Por acaso, os registros têm um registro de data e hora para informar quando eles foram alterados pela última vez?
Se você não tiver nenhum outro acesso, não estou pensando que eles estejam dispostos a configurar algo como o recurso Change Data Capture da Oracle. Se eles configurassem isso para você, você poderia fazer um despejo inicial da tabela e, em seguida, ler incrementalmente as alterações da Tabela de Mudanças associada, depois limpar a Tabela de Mudanças quando terminasse. Muito rolar o seu próprio. Uma introdução ao CDC está aqui: link .. Você só precisa selecionar o acesso à tabela de alterações associada à sua tabela Oracle e capacidade de limpar as alterações depois de aplicá-las ao seu banco de dados.
Um produto que eu costumava usar ($$$, portanto não entrarei em detalhes, mas é um produto relacionado ao Oracle Golden Gate) faz uma soma de verificação primeiro nas linhas de origem e de destino e, em seguida, nas cópias que são diferentes. Isso leva algum poder de processamento para gerar as somas de verificação, mas pode reduzir bastante a quantidade de dados movida pelo fio.